m_translator 0.1.1 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: cf87d592a2ae54397bef50ef590645e8ac04f7a2
4
- data.tar.gz: 59a086e33e71aab6601767a002c9acd03e2d7130
2
+ SHA256:
3
+ metadata.gz: 45790d5eac3144fa5ee06d24c429e5fd9df58c9da3cde5bad06295811960b77e
4
+ data.tar.gz: 1f3713312bf8add06796dfca0464f2b6238749a28842de10c3078d523e1b4712
5
5
  SHA512:
6
- metadata.gz: a2c29c8f9eaa2b8abc9188f582872f487246c4ef0f80f8fba85e0ad0af4a4ada5ae2ead98a917bf1193db22f3a4196c905829636153eb12344fd3b077f793acf
7
- data.tar.gz: 423c8cb9236aa6130301599f152afbba2abe61455c00046e617c3498feecf6cb7875749498f495cb3b88fdb2daab64d7201ba651808138d7e882cf3c916ad8fe
6
+ metadata.gz: 1e3980401a58319c653c2ded7cb3dfe66dba2230e3020dbb3601e2f1ffe7fbdf2094406c820a16b7e74e6d6e5fa5383bdd5aace6c8e73e3043828d103fb878fa
7
+ data.tar.gz: abb9b0329906b2f7df8b3459145f3010559dea1f9f99786360cd1a3af9dc2773b83e0e91c68ad5868750ccec3e65913d0909838f203ef18fef9d3ccaa040e589
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- m_translator (0.1.0)
4
+ m_translator (0.1.3)
5
5
  activesupport
6
6
  execjs (>= 2.7.0)
7
7
  json (>= 1.8.6)
@@ -10,28 +10,31 @@ PATH
10
10
  GEM
11
11
  remote: https://gems.ruby-china.com/
12
12
  specs:
13
- activesupport (5.0.1)
13
+ activesupport (6.0.3.2)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (~> 0.7)
15
+ i18n (>= 0.7, < 2)
16
16
  minitest (~> 5.1)
17
17
  tzinfo (~> 1.1)
18
- concurrent-ruby (1.0.5)
18
+ zeitwerk (~> 2.2, >= 2.2.2)
19
+ concurrent-ruby (1.1.6)
19
20
  diff-lcs (1.3)
20
- domain_name (0.5.20170404)
21
+ domain_name (0.5.20190701)
21
22
  unf (>= 0.0.5, < 1.0.0)
22
23
  execjs (2.7.0)
24
+ http-accept (1.7.0)
23
25
  http-cookie (1.0.3)
24
26
  domain_name (~> 0.5)
25
- i18n (0.9.5)
27
+ i18n (1.8.5)
26
28
  concurrent-ruby (~> 1.0)
27
- json (1.8.6)
28
- mime-types (3.1)
29
+ json (2.3.1)
30
+ mime-types (3.3.1)
29
31
  mime-types-data (~> 3.2015)
30
- mime-types-data (3.2016.0521)
31
- minitest (5.11.3)
32
+ mime-types-data (3.2020.0512)
33
+ minitest (5.14.1)
32
34
  netrc (0.11.0)
33
35
  rake (10.5.0)
34
- rest-client (2.0.2)
36
+ rest-client (2.1.0)
37
+ http-accept (>= 1.7.0, < 2.0)
35
38
  http-cookie (>= 1.0.2, < 2.0)
36
39
  mime-types (>= 1.16, < 4.0)
37
40
  netrc (~> 0.8)
@@ -49,11 +52,12 @@ GEM
49
52
  rspec-support (~> 3.5.0)
50
53
  rspec-support (3.5.0)
51
54
  thread_safe (0.3.6)
52
- tzinfo (1.2.5)
55
+ tzinfo (1.2.7)
53
56
  thread_safe (~> 0.1)
54
57
  unf (0.1.4)
55
58
  unf_ext
56
- unf_ext (0.0.7.4)
59
+ unf_ext (0.0.7.7)
60
+ zeitwerk (2.4.0)
57
61
 
58
62
  PLATFORMS
59
63
  ruby
@@ -65,4 +69,4 @@ DEPENDENCIES
65
69
  rspec (~> 3.0)
66
70
 
67
71
  BUNDLED WITH
68
- 1.14.5
72
+ 1.16.6
data/README.md CHANGED
@@ -23,10 +23,14 @@ Or install it yourself as:
23
23
  ## Usage
24
24
 
25
25
  ``` ruby
26
- g =MTranslator::Google.new("en","zh-CN","Hello, Who are you")
26
+ g = MTranslator::Google.new("en","zh-CN","Hello, Who are you")
27
27
  g.translator
28
- y =MTranslator::Youdao.new("zh-CHS","en","你是谁")
28
+ y = MTranslator::Youdao.new("zh-CHS","en","你是谁")
29
29
  y.translator
30
+ b = MTranslator::Baidu.new('zh','en','你好,我的世界')
31
+ b.translator
32
+ s = MTranslator::Sogou.new("zh-CHS","en","你好")
33
+ s.translator
30
34
  ```
31
35
 
32
36
  ## Development
@@ -4,7 +4,7 @@ module MTranslator
4
4
  @url = "https://fanyi.baidu.com/v2transapi"
5
5
  @from = from
6
6
  @to = to
7
- @text = text
7
+ p @text = CGI::unescape(text)
8
8
  end
9
9
 
10
10
  def translator
@@ -14,11 +14,11 @@ module MTranslator
14
14
 
15
15
  private
16
16
 
17
- def token(text,gtk)
17
+ def get_sign(text)
18
18
  f_path = File.join(File.dirname(__FILE__), '../tk/Baidu.js' )
19
19
  f = File.read(f_path)
20
20
  context = ExecJS.compile(f)
21
- context.call('token', text,gtk)
21
+ context.call('e', text)
22
22
  end
23
23
 
24
24
  def req_params
@@ -28,14 +28,15 @@ module MTranslator
28
28
  params["query"] = @text
29
29
  params["transtype"] = "translang"
30
30
  params["simple_means_flag"] = "3"
31
- params["sign"] = token(@text,"320305.131321201")
32
- params["token"] = "7b35624ba7fe34e692ea909140d9582d"
31
+ params["sign"] = get_sign(@text)
32
+ params["token"] = "372a653a84ba137c63c4d87461d5736e"
33
33
  params
34
34
  end
35
35
 
36
36
  def req_headers
37
37
  headers = {}
38
- headers["Cookie"] = "BAIDUID=16FFA1EAAF1A387C647A22DB9FC81DAE:FG=1; BIDUPSID=16FFA1EAAF1A387C647A22DB9FC81DAE; PSTM=1514024118; __cfduid=d2f7fd3a024d1ee90b8a817ddd866d9bc1514812370; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDUSS=E83bFplYnBRen5hV3FKNDZCM3ZSZldWMVBjV1ZGbW9uTTVwcjFYVDQzTGVFTlJhQVFBQUFBJCQAAAAAAAAAAAEAAADnIjgkcG9obG9ndTQxNTA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6DrFreg6xaS; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1429_21103_18559_22075; PSINO=3; locale=zh; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1525654866,1525657996,1525658015,1525671031; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1525671031; to_lang_often=%5B%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%2C%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%5D; from_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D"
38
+ # headers["Cookie"] = "BAIDUID=16FFA1EAAF1A387C647A22DB9FC81DAE:FG=1; BIDUPSID=16FFA1EAAF1A387C647A22DB9FC81DAE; PSTM=1514024118; __cfduid=d2f7fd3a024d1ee90b8a817ddd866d9bc1514812370; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDUSS=E83bFplYnBRen5hV3FKNDZCM3ZSZldWMVBjV1ZGbW9uTTVwcjFYVDQzTGVFTlJhQVFBQUFBJCQAAAAAAAAAAAEAAADnIjgkcG9obG9ndTQxNTA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6DrFreg6xaS; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1429_21103_18559_22075; PSINO=3; locale=zh; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1525654866,1525657996,1525658015,1525671031; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1525671031; to_lang_often=%5B%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%2C%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%5D; from_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D"
39
+ headers["Cookie"] = "BIDUPSID=D3290C65C03AEF0E98D97B8641DFFB15; PSTM=1570785944; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BAIDUID=0CC6F13854E81A68D3C564D36E7C8A03:FG=1; APPGUIDE_8_2_2=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID=wt_OJeC626EDLgju-c_JbHce7gSxbKcTH6aoxbIy4_AgXmAxrp74EG0PJf8g0Ku-dWitogKKBmOTHg-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=JJkO_D_atKvjDbTnMITHh-F-5fIX5-RLf5TuLPOF5lOTJh0RbtOkjnQD-UL82bT2fRcQ0tJLb4DaStJbLjbke6cbDa_fJ5Fs-I5O0R4854QqqR5R5bOq-PvHhxoJqbbJX2OZ0l8KtDQpshRTMR_V-p4p-472K6bML5baabOmWIQHDPnPyJuMBU_sWMcChnjjJbn4KKJxWJLWeIJo5Dcf3PF3hUJiBMjLBan7056IXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtpChbRO4-TF-D5jXeMK; delPer=0; PSINO=2; H_PS_PSSID=1435_21104_18560_26350; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1580216234,1580216243,1580458514,1580458537; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1580458539; __yjsv5_shitong=1.0_7_ed303110bee0e644d4985049ba8a5cd1f28d_300_1580458537306_120.10.109.208_66a3b40c; yjs_js_security_passport=630340c0505f771135167fa6df3e5215699dcf0b_1580458538_js; to_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D; from_lang_often=%5B%7B%22value%22%3A%22vie%22%2C%22text%22%3A%22%u8D8A%u5357%u8BED%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%2C%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%5D"
39
40
  headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
40
41
  headers
41
42
  end
@@ -4,7 +4,7 @@ module MTranslator
4
4
  @url = "https://translate.google.cn/translate_a/single"
5
5
  @from = from
6
6
  @to = to
7
- @text = text
7
+ @text = CGI::unescape(text)
8
8
  end
9
9
 
10
10
  def translator
@@ -1,3 +1,3 @@
1
1
  module MTranslator
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -7,7 +7,7 @@ module MTranslator
7
7
  @to = to
8
8
  @text = text
9
9
  @u = "fanyideskweb"
10
- @c = "ebSeFb%=XZ%T[KZ)c(sy!"
10
+ @c = "n%A-rKaT5fb[Gy?;N5@Tj"
11
11
  @f = "#{ctime}"+"#{rand(10 + 1)}"
12
12
  end
13
13
 
@@ -27,17 +27,19 @@ module MTranslator
27
27
  params["client"] = "fanyideskweb"
28
28
  params["salt"] = @f
29
29
  params["sign"] = sign
30
+ params["ts"] = ctime
31
+ params["bv"] = '53539dde41bde18f4a71bb075fcf2e66'
30
32
  params["doctype"] = "json"
31
33
  params["version"] = "2.1"
32
34
  params["keyfrom"] = "fanyi.web"
33
35
  params["action"] = "FY_BY_CLICKBUTTION"
34
- params["typoResult"] = "false"
35
36
  params
36
37
  end
37
38
 
38
39
  def req_headers
39
40
  headers = {}
40
- headers["Cookie"] = "OUTFOX_SEARCH_USER_ID_NCOO=1537643834.9570553; OUTFOX_SEARCH_USER_ID=1799185238@10.169.0.83; fanyi-ad-id=43155; fanyi-ad-closed=1; JSESSIONID=aaaBwRanNsqoobhgvaHmw; _ntes_nnid=07e771bc10603d984c2dc8045a293d30,1525267244050; ___rl__test__cookies=#{ctime}"
41
+ #headers["Cookie"] = "OUTFOX_SEARCH_USER_ID_NCOO=1537643834.9570553; OUTFOX_SEARCH_USER_ID=1799185238@10.169.0.83; fanyi-ad-id=43155; fanyi-ad-closed=1; JSESSIONID=aaaBwRanNsqoobhgvaHmw; _ntes_nnid=07e771bc10603d984c2dc8045a293d30,1525267244050; ___rl__test__cookies=#{ctime}"
42
+ headers["Cookie"] = "OUTFOX_SEARCH_USER_ID=-352392290@116.136.20.84; P_INFO=a121bc; OUTFOX_SEARCH_USER_ID_NCOO=710017829.1902944; JSESSIONID=aaaDa3sqezCDY-snjj91w; SESSION_FROM_COOKIE=unknown; ___rl__test__cookies=#{ctime}"
41
43
  headers["Referer"] = "http://fanyi.youdao.com/"
42
44
  headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
43
45
  headers
@@ -1,31 +1,42 @@
1
- function a(r, o) {
1
+ function n(r, o) {
2
2
  for (var t = 0; t < o.length - 2; t += 3) {
3
3
  var a = o.charAt(t + 2);
4
4
  a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a),
5
- a = "+" === o.charAt(t + 1) ? r >>> a: r << a,
6
- r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a
5
+ a = "+" === o.charAt(t + 1) ? r >>> a : r << a,
6
+ r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a
7
7
  }
8
8
  return r
9
9
  }
10
- var C = null;
11
- var token = function(r, _gtk) {
12
- var o = r.length;
13
- o > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(o / 2) - 5, 10) + r.substring(r.length, r.length - 10));
14
- var t = void 0,
15
- t = null !== C ? C: (C = _gtk || "") || "";
16
- for (var e = t.split("."), h = Number(e[0]) || 0, i = Number(e[1]) || 0, d = [], f = 0, g = 0; g < r.length; g++) {
17
- var m = r.charCodeAt(g);
18
- 128 > m ? d[f++] = m: (2048 > m ? d[f++] = m >> 6 | 192 : (55296 === (64512 & m) && g + 1 < r.length && 56320 === (64512 & r.charCodeAt(g + 1)) ? (m = 65536 + ((1023 & m) << 10) + (1023 & r.charCodeAt(++g)), d[f++] = m >> 18 | 240, d[f++] = m >> 12 & 63 | 128) : d[f++] = m >> 12 | 224, d[f++] = m >> 6 & 63 | 128), d[f++] = 63 & m | 128)
19
- }
20
- for (var S = h,
21
- u = "+-a^+6",
22
- l = "+-3^+b+-f",
23
- s = 0; s < d.length; s++) S += d[s],
24
- S = a(S, u);
25
10
 
26
- return S = a(S, l),
27
- S ^= i,
28
- 0 > S && (S = (2147483647 & S) + 2147483648),
29
- S %= 1e6,
30
- S.toString() + "." + (S ^ h)
11
+ function e(r) {
12
+ var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);
13
+ if (null === o) {
14
+ var t = r.length;
15
+ t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10))
16
+ } else {
17
+ for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++)
18
+ "" !== e[C] && f.push.apply(f, a(e[C].split(""))),
19
+ C !== h - 1 && f.push(o[C]);
20
+ var g = f.length;
21
+ g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""))
22
+ }
23
+ var u = void 0
24
+ , l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);
25
+ u ='320305.131321201';
26
+ for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {
27
+ var A = r.charCodeAt(v);
28
+ 128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)),
29
+ S[c++] = A >> 18 | 240,
30
+ S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224,
31
+ S[c++] = A >> 6 & 63 | 128),
32
+ S[c++] = 63 & A | 128)
33
+ }
34
+ for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++)
35
+ p += S[b],
36
+ p = n(p, F);
37
+ return p = n(p, D),
38
+ p ^= s,
39
+ 0 > p && (p = (2147483647 & p) + 2147483648),
40
+ p %= 1e6,
41
+ p.toString() + "." + (p ^ m)
31
42
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m_translator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - jack
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-20 00:00:00.000000000 Z
11
+ date: 2020-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  requirements: []
158
158
  rubyforge_project:
159
- rubygems_version: 2.5.1
159
+ rubygems_version: 2.7.9
160
160
  signing_key:
161
161
  specification_version: 4
162
162
  summary: a gem is translation package