From 1de781a143270c8f1f98a04b688b8546ad341ec5 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 3 Feb 2015 18:37:38 +0100 Subject: [enh] category specific engine deactivation - closes #205 --- searx/utils.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'searx/utils.py') diff --git a/searx/utils.py b/searx/utils.py index c0afc94cb..a42458829 100644 --- a/searx/utils.py +++ b/searx/utils.py @@ -231,7 +231,21 @@ def prettify_url(url): def get_blocked_engines(engines, cookies): if 'blocked_engines' not in cookies: - return [engine for engine in engines if engines[engine].disabled] + return [(engine, category) for engine in engines for category in engines.category if engines[engine].disabled] - return [engine for engine in cookies.get('blocked_engines', '').split(',') - if engine in engines] + blocked_engine_strings = cookies.get('blocked_engines', '').split(',') + blocked_engines = [] + + if not blocked_engine_strings: + return blocked_engines + + for engine_string in blocked_engine_strings: + if engine_string.find('__') > -1: + engine, category = engine_string.split('__', 1) + if engine in engines and category in engines[engine].categories: + blocked_engines.append((engine, category)) + elif engine_string in engines: + for category in engines[engine_string].categories: + blocked_engines.append((engine_string, category)) + + return blocked_engines -- cgit v1.2.3