smartdict-core 0.1.0 → 0.1.1
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.
- data/VERSION +1 -1
- data/lib/smartdict/drivers/lingvo_yandex_driver.rb +17 -13
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -19,7 +19,7 @@ module Smartdict::Drivers
|
|
19
19
|
USER_AGENT = "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.16) Gecko/20110429 Iceweasel/3.5.16 (like Firefox/3.5.1623123)"
|
20
20
|
|
21
21
|
# Host of Lingvo service.
|
22
|
-
HOST = "
|
22
|
+
HOST = "slovari.yandex.ru"
|
23
23
|
|
24
24
|
# Mapping for word classes. Default is "other"
|
25
25
|
WORD_CLASSES = {
|
@@ -43,22 +43,23 @@ module Smartdict::Drivers
|
|
43
43
|
def translate
|
44
44
|
doc = Nokogiri::HTML(get_response)
|
45
45
|
|
46
|
-
if
|
47
|
-
translate__value = main_div
|
46
|
+
if main = doc.css("div.b-translation__article > ul > li#I").first
|
48
47
|
else
|
49
|
-
|
50
|
-
translate__value = main_div.css("div.b-translate__value")
|
48
|
+
main = doc.css("div.b-translation__article").first
|
51
49
|
end
|
52
50
|
|
51
|
+
raise Smartdict::TranslationNotFound unless main
|
52
|
+
|
53
53
|
# Fetch transcription
|
54
|
-
self.transcription =
|
54
|
+
self.transcription = doc.css("span.b-translation__tr").first.try(:text)
|
55
|
+
|
55
56
|
|
56
57
|
self.translated = {}
|
57
58
|
|
58
|
-
if
|
59
|
-
grep_meanings(
|
59
|
+
if main.xpath("./i/acronym").any?
|
60
|
+
grep_meanings(main)
|
60
61
|
else
|
61
|
-
|
62
|
+
main.xpath("./ul/li").each do |li|
|
62
63
|
grep_meanings(li)
|
63
64
|
end
|
64
65
|
end
|
@@ -66,11 +67,15 @@ module Smartdict::Drivers
|
|
66
67
|
|
67
68
|
# TODO: refactor
|
68
69
|
def grep_meanings(html_element)
|
70
|
+
require 'pry'
|
71
|
+
#binding.pry
|
72
|
+
|
69
73
|
acronym = html_element.css("acronym").first
|
70
74
|
return unless acronym
|
71
75
|
|
72
76
|
ru_word_class = acronym["title"]
|
73
77
|
word_class = WORD_CLASSES[ru_word_class]
|
78
|
+
puts word_class
|
74
79
|
translations = []
|
75
80
|
|
76
81
|
html_element.css("ul > li").each do |tr|
|
@@ -122,13 +127,12 @@ module Smartdict::Drivers
|
|
122
127
|
# @return [String] http path for request to translate word.
|
123
128
|
def http_path
|
124
129
|
phrase = case [from_lang, to_lang]
|
125
|
-
when ["en", "ru"] then "
|
126
|
-
|
127
|
-
# when ["ru", "en"] then "по-английски"
|
130
|
+
when ["en", "ru"] then "en-ru"
|
131
|
+
when ["ru", "en"] then "ru-en"
|
128
132
|
else raise Smartdict::TranslationNotFound
|
129
133
|
end
|
130
134
|
|
131
|
-
"/#{escape(word)}/#{
|
135
|
+
"/#{escape(word)}/#{phrase}/"
|
132
136
|
end
|
133
137
|
|
134
138
|
def escape(str)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartdict-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dm-core
|