summaryrefslogtreecommitdiff
path: root/searx/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/utils.py')
-rw-r--r--searx/utils.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/searx/utils.py b/searx/utils.py
index aa8ce92a1..faa634853 100644
--- a/searx/utils.py
+++ b/searx/utils.py
@@ -6,9 +6,13 @@ import re
from babel.dates import format_date
from codecs import getincrementalencoder
from HTMLParser import HTMLParser
+from imp import load_source
+from os.path import splitext, join
from random import choice
+import sys
from searx.version import VERSION_STRING
+from searx.languages import language_codes
from searx import settings
from searx import logger
@@ -237,3 +241,60 @@ def list_get(a_list, index, default=None):
return a_list[index]
else:
return default
+
+
+def get_torrent_size(filesize, filesize_multiplier):
+ try:
+ filesize = float(filesize)
+
+ if filesize_multiplier == 'TB':
+ filesize = int(filesize * 1024 * 1024 * 1024 * 1024)
+ elif filesize_multiplier == 'GB':
+ filesize = int(filesize * 1024 * 1024 * 1024)
+ elif filesize_multiplier == 'MB':
+ filesize = int(filesize * 1024 * 1024)
+ elif filesize_multiplier == 'KB':
+ filesize = int(filesize * 1024)
+ elif filesize_multiplier == 'TiB':
+ filesize = int(filesize * 1000 * 1000 * 1000 * 1000)
+ elif filesize_multiplier == 'GiB':
+ filesize = int(filesize * 1000 * 1000 * 1000)
+ elif filesize_multiplier == 'MiB':
+ filesize = int(filesize * 1000 * 1000)
+ elif filesize_multiplier == 'KiB':
+ filesize = int(filesize * 1000)
+ except:
+ filesize = None
+
+ return filesize
+
+
+def convert_str_to_int(number_str):
+ if number_str.isdigit():
+ return int(number_str)
+ else:
+ return 0
+
+
+def is_valid_lang(lang):
+ is_abbr = (len(lang) == 2)
+ if is_abbr:
+ for l in language_codes:
+ if l[0][:2] == lang.lower():
+ return (True, l[0][:2], l[1].lower())
+ return False
+ else:
+ for l in language_codes:
+ if l[1].lower() == lang.lower():
+ return (True, l[0][:2], l[1].lower())
+ return False
+
+
+def load_module(filename, module_dir):
+ modname = splitext(filename)[0]
+ if modname in sys.modules:
+ del sys.modules[modname]
+ filepath = join(module_dir, filename)
+ module = load_source(modname, filepath)
+ module.name = modname
+ return module