diff options
| author | Markus Heiser <markus.heiser@darmarIT.de> | 2022-01-31 08:51:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-31 08:51:35 +0100 |
| commit | 60e7fee47a2a994f5d1bc0850808787577c9e3cb (patch) | |
| tree | 31521c47abce801fe4a614bfc3ff69af250bf11f /searx/search/processors/online_url_search.py | |
| parent | 32c5acb1fbebfca2cdf82809130498a886a5881c (diff) | |
| parent | ebd3013a1aad1bc6def749dea07d6278f399fb69 (diff) | |
Merge pull request #475 from return42/tineye
[enh] engine - add Tineye reverse image search
Diffstat (limited to 'searx/search/processors/online_url_search.py')
| -rw-r--r-- | searx/search/processors/online_url_search.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/searx/search/processors/online_url_search.py b/searx/search/processors/online_url_search.py new file mode 100644 index 000000000..2863be28e --- /dev/null +++ b/searx/search/processors/online_url_search.py @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# lint: pylint +"""Processores for engine-type: ``online_url_search`` + +""" + +import re +from .online import OnlineProcessor + +re_search_urls = { + 'http': re.compile(r'https?:\/\/[^ ]*'), + 'ftp': re.compile(r'ftps?:\/\/[^ ]*'), + 'data:image': re.compile('data:image/[^; ]*;base64,[^ ]*'), +} + + +class OnlineUrlSearchProcessor(OnlineProcessor): + """Processor class used by ``online_url_search`` engines.""" + + engine_type = 'online_url_search' + + def get_params(self, search_query, engine_category): + params = super().get_params(search_query, engine_category) + if params is None: + return None + + url_match = False + search_urls = {} + + for k, v in re_search_urls.items(): + m = v.search(search_query.query) + v = None + if m: + url_match = True + v = m[0] + search_urls[k] = v + + if not url_match: + return None + + params['search_urls'] = search_urls + return params |