leo_mp3_parser 0.0.08 → 0.0.09
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/leo_mp3_parser.rb +16 -14
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f75b66576144ba4ef6b5a256fee068867b1df798
|
4
|
+
data.tar.gz: 6bf144300c03eccf4ba781aa7da70b13bfc5bdd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fa0f209f914b4bf4d1dc8c89137beaf4a536234baaa78ec94c292bd5382453e7175a176237bd1c5454202070447ff729ae6b8cc5b197cfd4485e39523567cab
|
7
|
+
data.tar.gz: 102a9f5f7a58517001fddf10f92517ecb65ac6797879167f60a216938d4786236f45b7b0534cd31ca42f8f997783fee660f23fc510635d91b8f0cd7df8bd05b7
|
data/lib/leo_mp3_parser.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
require 'open-uri'
|
3
3
|
class LeoMp3Parser
|
4
|
+
def get_audio_url(language_and_term)
|
5
|
+
validate_arguments(language_and_term)
|
6
|
+
url = compose_query(language_and_term)
|
7
|
+
compose_url(url)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
4
12
|
def validate_arguments(language_and_term)
|
5
13
|
raise ArgumentError, 'Argument must be a Hash' unless language_and_term.is_a? Hash
|
6
14
|
unless [:language, :term].all? { |key| language_and_term.key? key }
|
@@ -17,12 +25,6 @@ class LeoMp3Parser
|
|
17
25
|
end
|
18
26
|
end
|
19
27
|
|
20
|
-
def get_audio_url(language_and_term)
|
21
|
-
validate_arguments(language_and_term)
|
22
|
-
url = compose_query(language_and_term)
|
23
|
-
compose_url(url)
|
24
|
-
end
|
25
|
-
|
26
28
|
def compose_query(language_and_term)
|
27
29
|
url = 'https://dict.leo.org/dictQuery/m-vocab/' << language_and_term[:language]
|
28
30
|
url << '/query.xml?tolerMode=nof&lp=ende&lang=en&rmWords=off&rmSearch=on&directN=0&search='
|
@@ -30,23 +32,23 @@ class LeoMp3Parser
|
|
30
32
|
url << '&searchLoc=0&resultOrder=basic&multiwordShowSingle=on§LenMax=16'
|
31
33
|
end
|
32
34
|
|
33
|
-
def
|
34
|
-
|
35
|
+
def compose_url(url)
|
36
|
+
"https://dict.leo.org/media/audio/#{parse_audio_identifier(url)}.mp3"
|
35
37
|
end
|
36
38
|
|
37
|
-
def
|
38
|
-
|
39
|
+
def parse_audio_identifier(url)
|
40
|
+
instantiate_nokogiri_object(url).at_css('pron').first[1]
|
39
41
|
rescue
|
40
42
|
raise_customized_exception
|
41
43
|
end
|
42
44
|
|
43
|
-
def
|
44
|
-
|
45
|
+
def instantiate_nokogiri_object(url)
|
46
|
+
Nokogiri::XML(open(url))
|
45
47
|
rescue
|
46
48
|
raise_customized_exception
|
47
49
|
end
|
48
50
|
|
49
|
-
def
|
50
|
-
|
51
|
+
def raise_customized_exception
|
52
|
+
raise StandardError, 'Nokogiri throws an exception'
|
51
53
|
end
|
52
54
|
end
|