浏览代码

[enh] is_valid_lang moved to utils

potato 8 年前
父节点
当前提交
983415bc38
共有 3 个文件被更改,包括 19 次插入32 次删除
  1. 3
    17
      searx/engines/dictzone.py
  2. 1
    15
      searx/engines/translated.py
  3. 15
    0
      searx/utils.py

+ 3
- 17
searx/engines/dictzone.py 查看文件

14
 from lxml import html
14
 from lxml import html
15
 from cgi import escape
15
 from cgi import escape
16
 from searx.engines.xpath import extract_text
16
 from searx.engines.xpath import extract_text
17
-from searx.languages import language_codes
17
+from searx.utils import is_valid_lang
18
 
18
 
19
 categories = ['general']
19
 categories = ['general']
20
 url = 'http://dictzone.com/{from_lang}-{to_lang}-dictionary/{query}'
20
 url = 'http://dictzone.com/{from_lang}-{to_lang}-dictionary/{query}'
24
 results_xpath = './/table[@id="r"]/tr'
24
 results_xpath = './/table[@id="r"]/tr'
25
 
25
 
26
 
26
 
27
-def is_valid_lang(lang):
28
-    is_abbr = (len(lang) == 2)
29
-    if is_abbr:
30
-        for l in language_codes:
31
-            if l[0][:2] == lang.lower():
32
-                return (True, l[1].lower())
33
-        return False
34
-    else:
35
-        for l in language_codes:
36
-            if l[1].lower() == lang.lower():
37
-                return (True, l[1].lower())
38
-        return False
39
-
40
-
41
 def request(query, params):
27
 def request(query, params):
42
     m = parser_re.match(unicode(query, 'utf8'))
28
     m = parser_re.match(unicode(query, 'utf8'))
43
     if not m:
29
     if not m:
51
     if not from_lang or not to_lang:
37
     if not from_lang or not to_lang:
52
         return params
38
         return params
53
 
39
 
54
-    params['url'] = url.format(from_lang=from_lang[1],
55
-                               to_lang=to_lang[1],
40
+    params['url'] = url.format(from_lang=from_lang[2],
41
+                               to_lang=to_lang[2],
56
                                query=query)
42
                                query=query)
57
 
43
 
58
     return params
44
     return params

+ 1
- 15
searx/engines/translated.py 查看文件

13
 from lxml import html
13
 from lxml import html
14
 from cgi import escape
14
 from cgi import escape
15
 from searx.engines.xpath import extract_text
15
 from searx.engines.xpath import extract_text
16
-from searx.languages import language_codes
16
+from searx.utils import is_valid_lang
17
 
17
 
18
 categories = ['general']
18
 categories = ['general']
19
 url = 'http://api.mymemory.translated.net/get?q={query}' \
19
 url = 'http://api.mymemory.translated.net/get?q={query}' \
25
 api_key = ''
25
 api_key = ''
26
 
26
 
27
 
27
 
28
-def is_valid_lang(lang):
29
-    is_abbr = (len(lang) == 2)
30
-    if is_abbr:
31
-        for l in language_codes:
32
-            if l[0][:2] == lang.lower():
33
-                return (True, l[0][:2], l[1].lower())
34
-        return False
35
-    else:
36
-        for l in language_codes:
37
-            if l[1].lower() == lang.lower():
38
-                return (True, l[0][:2], l[1].lower())
39
-        return False
40
-
41
-
42
 def request(query, params):
28
 def request(query, params):
43
     m = parser_re.match(unicode(query, 'utf8'))
29
     m = parser_re.match(unicode(query, 'utf8'))
44
     if not m:
30
     if not m:

+ 15
- 0
searx/utils.py 查看文件

9
 from random import choice
9
 from random import choice
10
 
10
 
11
 from searx.version import VERSION_STRING
11
 from searx.version import VERSION_STRING
12
+from searx.languages import language_codes
12
 from searx import settings
13
 from searx import settings
13
 from searx import logger
14
 from searx import logger
14
 
15
 
255
         filesize = None
256
         filesize = None
256
 
257
 
257
     return filesize
258
     return filesize
259
+
260
+
261
+def is_valid_lang(lang):
262
+    is_abbr = (len(lang) == 2)
263
+    if is_abbr:
264
+        for l in language_codes:
265
+            if l[0][:2] == lang.lower():
266
+                return (True, l[0][:2], l[1].lower())
267
+        return False
268
+    else:
269
+        for l in language_codes:
270
+            if l[1].lower() == lang.lower():
271
+                return (True, l[0][:2], l[1].lower())
272
+        return False