Browse Source

fetch_firefox_version.py : compatible with Python 3 and minor fixes.

Alex 6 years ago
parent
commit
50c836864a
3 changed files with 23 additions and 20 deletions
  1. 9 10
      searx/data/useragents.json
  2. 2 2
      searx/utils.py
  3. 12 8
      utils/fetch_firefox_version.py

+ 9 - 10
searx/data/useragents.json

@@ -1,15 +1,14 @@
 {
+    "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
+    "versions": [
+        "61.0.1",
+        "61.0",
+        "60.0.2",
+        "60.0.1",
+        "60.0"
+    ],
     "os": [
-        "Windows NT 10; WOW64", 
+        "Windows NT 10; WOW64",
         "X11; Linux x86_64"
-    ], 
-    "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}", 
-    "versions": [
-        "59.0.2", 
-        "59.0.1", 
-        "59.0", 
-        "58.0.2", 
-        "58.0.1", 
-        "58.0"
     ]
 }

+ 2 - 2
searx/utils.py

@@ -54,8 +54,8 @@ def searx_useragent():
            suffix=settings['outgoing'].get('useragent_suffix', ''))
 
 
-def gen_useragent():
-    return str(useragents['ua'].format(os=choice(useragents['os']), version=choice(useragents['versions'])))
+def gen_useragent(os=None):
+    return str(useragents['ua'].format(os=os or choice(useragents['os']), version=choice(useragents['versions'])))
 
 
 def highlight_content(content, query):

+ 12 - 8
utils/fetch_firefox_version.py

@@ -2,7 +2,7 @@
 
 # set path
 from sys import path
-from os.path import realpath, dirname
+from os.path import realpath, dirname, join
 path.append(realpath(dirname(realpath(__file__)) + '/../'))
 
 #
@@ -12,16 +12,17 @@ import re
 from distutils.version import LooseVersion, StrictVersion
 from lxml import html
 from searx.url_utils import urlparse, urljoin
+from searx import searx_dir
 
 URL = 'https://ftp.mozilla.org/pub/firefox/releases/'
 RELEASE_PATH = '/pub/firefox/releases/'
 
-NORMAL_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?(esr)?$')
+NORMAL_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?$')
 # BETA_REGEX = re.compile('.*[0-9]b([0-9\-a-z]+)$')
 # ESR_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?esr$')
 
 # 
-useragent = {
+useragents = {
     "versions": (),
     "os": ('Windows NT 10; WOW64',
            'X11; Linux x86_64'),
@@ -57,13 +58,16 @@ def fetch_firefox_last_versions():
     major_list = (major_last, major_last - 1)
     for version in versions:
         major_current = version.version[0]
-        if major_current in major_list and 'esr' not in version.version:
+        if major_current in major_list:
             result.append(version.vstring)
 
     return result
 
 
-useragent["versions"] = fetch_firefox_last_versions()
-f = open("../searx/data/useragents.json", "wb")
-json.dump(useragent, f, sort_keys=True, indent=4, ensure_ascii=False, encoding="utf-8")
-f.close()
+def get_useragents_filename():
+    return join(join(searx_dir, "data"), "useragents.json")
+
+
+useragents["versions"] = fetch_firefox_last_versions()
+with open(get_useragents_filename(), "w") as f:
+    json.dump(useragents, f, indent=4, ensure_ascii=False)