| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- # SPDX-License-Identifier: AGPL-3.0-or-later
 
- """Processors 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):
 
-         """Returns a set of :ref:`request params <engine request online>` or ``None`` if
 
-         search query does not match to :py:obj:`re_search_urls`.
 
-         """
 
-         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
 
 
  |