Loading searx/settings.yml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ server: http_protocol_version : "1.0" # 1.0 and 1.1 are supported ui: themes_path : "" # Custom ui themes path - leave it blank if you didn't change static_path : "" # Custom static path - leave it blank if you didn't change templates_path : "" # Custom templates path - leave it blank if you didn't change default_theme : oscar # ui theme default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section Loading searx/settings_robot.yml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ server: http_protocol_version : "1.0" ui: themes_path : "" static_path : "" templates_path : "" default_theme : oscar default_locale : "" Loading searx/utils.py +17 −15 Original line number Diff line number Diff line Loading @@ -178,37 +178,39 @@ class UnicodeWriter: self.writerow(row) def get_themes(root): """Returns available themes list.""" def get_resources_directory(searx_directory, subdirectory, resources_directory): if not resources_directory: resources_directory = os.path.join(searx_directory, subdirectory) if not os.path.isdir(resources_directory): raise Exception(directory + " is not a directory") return resources_directory static_path = os.path.join(root, 'static') templates_path = os.path.join(root, 'templates') def get_themes(static_path): """Returns available themes list.""" themes = os.listdir(os.path.join(static_path, 'themes')) if '__common__' in themes: themes.remove('__common__') return static_path, templates_path, themes return themes def get_static_files(base_path): base_path = os.path.join(base_path, 'static') def get_static_files(static_path): static_files = set() base_path_length = len(base_path) + 1 for directory, _, files in os.walk(base_path): static_path_length = len(static_path) + 1 for directory, _, files in os.walk(static_path): for filename in files: f = os.path.join(directory[base_path_length:], filename) f = os.path.join(directory[static_path_length:], filename) static_files.add(f) return static_files def get_result_templates(base_path): base_path = os.path.join(base_path, 'templates') def get_result_templates(templates_path): result_templates = set() base_path_length = len(base_path) + 1 for directory, _, files in os.walk(base_path): templates_path_length = len(templates_path) + 1 for directory, _, files in os.walk(templates_path): if directory.endswith('result_templates'): for filename in files: f = os.path.join(directory[base_path_length:], filename) f = os.path.join(directory[templates_path_length:], filename) result_templates.add(f) return result_templates Loading searx/webapp.py +19 −18 Original line number Diff line number Diff line Loading @@ -56,9 +56,9 @@ from searx.engines import ( categories, engines, engine_shortcuts, get_engines_stats, initialize_engines ) from searx.utils import ( UnicodeWriter, highlight_content, html_to_text, get_themes, get_static_files, get_result_templates, gen_useragent, dict_subset, prettify_url UnicodeWriter, highlight_content, html_to_text, get_resources_directory, get_static_files, get_result_templates, get_themes, gen_useragent, dict_subset, prettify_url ) from searx.version import VERSION_STRING from searx.languages import language_codes Loading Loading @@ -91,17 +91,25 @@ if sys.version_info[0] == 3: from werkzeug.serving import WSGIRequestHandler WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server'].get('http_protocol_version', '1.0')) static_path, templates_path, themes =\ get_themes(settings['ui']['themes_path'] if settings['ui']['themes_path'] else searx_dir) # about static static_path = get_resources_directory(searx_dir, 'static', settings['ui']['static_path']) logger.debug('static directory is %s', static_path) static_files = get_static_files(static_path) # about templates default_theme = settings['ui']['default_theme'] templates_path = get_resources_directory(searx_dir, 'templates', settings['ui']['templates_path']) logger.debug('templates directory is %s', templates_path) themes = get_themes(static_path) result_templates = get_result_templates(templates_path) global_favicons = [] for indice, theme in enumerate(themes): global_favicons.append([]) theme_img_path = os.path.join(static_path, 'themes', theme, 'img', 'icons') for (dirpath, dirnames, filenames) in os.walk(theme_img_path): global_favicons[indice].extend(filenames) static_files = get_static_files(searx_dir) result_templates = get_result_templates(searx_dir) # Flask app app = Flask( __name__, static_folder=static_path, Loading @@ -120,13 +128,6 @@ babel = Babel(app) rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'pnb'', ''ps', 'sd', 'ug', 'ur', 'yi'] global_favicons = [] for indice, theme in enumerate(themes): global_favicons.append([]) theme_img_path = searx_dir + "/static/themes/" + theme + "/img/icons/" for (dirpath, dirnames, filenames) in os.walk(theme_img_path): global_favicons[indice].extend(filenames) # used when translating category names _category_names = (gettext('files'), gettext('general'), Loading Loading
searx/settings.yml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ server: http_protocol_version : "1.0" # 1.0 and 1.1 are supported ui: themes_path : "" # Custom ui themes path - leave it blank if you didn't change static_path : "" # Custom static path - leave it blank if you didn't change templates_path : "" # Custom templates path - leave it blank if you didn't change default_theme : oscar # ui theme default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section Loading
searx/settings_robot.yml +2 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ server: http_protocol_version : "1.0" ui: themes_path : "" static_path : "" templates_path : "" default_theme : oscar default_locale : "" Loading
searx/utils.py +17 −15 Original line number Diff line number Diff line Loading @@ -178,37 +178,39 @@ class UnicodeWriter: self.writerow(row) def get_themes(root): """Returns available themes list.""" def get_resources_directory(searx_directory, subdirectory, resources_directory): if not resources_directory: resources_directory = os.path.join(searx_directory, subdirectory) if not os.path.isdir(resources_directory): raise Exception(directory + " is not a directory") return resources_directory static_path = os.path.join(root, 'static') templates_path = os.path.join(root, 'templates') def get_themes(static_path): """Returns available themes list.""" themes = os.listdir(os.path.join(static_path, 'themes')) if '__common__' in themes: themes.remove('__common__') return static_path, templates_path, themes return themes def get_static_files(base_path): base_path = os.path.join(base_path, 'static') def get_static_files(static_path): static_files = set() base_path_length = len(base_path) + 1 for directory, _, files in os.walk(base_path): static_path_length = len(static_path) + 1 for directory, _, files in os.walk(static_path): for filename in files: f = os.path.join(directory[base_path_length:], filename) f = os.path.join(directory[static_path_length:], filename) static_files.add(f) return static_files def get_result_templates(base_path): base_path = os.path.join(base_path, 'templates') def get_result_templates(templates_path): result_templates = set() base_path_length = len(base_path) + 1 for directory, _, files in os.walk(base_path): templates_path_length = len(templates_path) + 1 for directory, _, files in os.walk(templates_path): if directory.endswith('result_templates'): for filename in files: f = os.path.join(directory[base_path_length:], filename) f = os.path.join(directory[templates_path_length:], filename) result_templates.add(f) return result_templates Loading
searx/webapp.py +19 −18 Original line number Diff line number Diff line Loading @@ -56,9 +56,9 @@ from searx.engines import ( categories, engines, engine_shortcuts, get_engines_stats, initialize_engines ) from searx.utils import ( UnicodeWriter, highlight_content, html_to_text, get_themes, get_static_files, get_result_templates, gen_useragent, dict_subset, prettify_url UnicodeWriter, highlight_content, html_to_text, get_resources_directory, get_static_files, get_result_templates, get_themes, gen_useragent, dict_subset, prettify_url ) from searx.version import VERSION_STRING from searx.languages import language_codes Loading Loading @@ -91,17 +91,25 @@ if sys.version_info[0] == 3: from werkzeug.serving import WSGIRequestHandler WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server'].get('http_protocol_version', '1.0')) static_path, templates_path, themes =\ get_themes(settings['ui']['themes_path'] if settings['ui']['themes_path'] else searx_dir) # about static static_path = get_resources_directory(searx_dir, 'static', settings['ui']['static_path']) logger.debug('static directory is %s', static_path) static_files = get_static_files(static_path) # about templates default_theme = settings['ui']['default_theme'] templates_path = get_resources_directory(searx_dir, 'templates', settings['ui']['templates_path']) logger.debug('templates directory is %s', templates_path) themes = get_themes(static_path) result_templates = get_result_templates(templates_path) global_favicons = [] for indice, theme in enumerate(themes): global_favicons.append([]) theme_img_path = os.path.join(static_path, 'themes', theme, 'img', 'icons') for (dirpath, dirnames, filenames) in os.walk(theme_img_path): global_favicons[indice].extend(filenames) static_files = get_static_files(searx_dir) result_templates = get_result_templates(searx_dir) # Flask app app = Flask( __name__, static_folder=static_path, Loading @@ -120,13 +128,6 @@ babel = Babel(app) rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'pnb'', ''ps', 'sd', 'ug', 'ur', 'yi'] global_favicons = [] for indice, theme in enumerate(themes): global_favicons.append([]) theme_img_path = searx_dir + "/static/themes/" + theme + "/img/icons/" for (dirpath, dirnames, filenames) in os.walk(theme_img_path): global_favicons[indice].extend(filenames) # used when translating category names _category_names = (gettext('files'), gettext('general'), Loading