mirror of
https://github.com/searxng/searxng.git
synced 2025-02-20 12:20:04 +00:00
[fix] hostnames plugin: AttributeError: 'NoneType' object has no attribute 'netloc'
Closes: https://github.com/searxng/searxng/issues/4245 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
36a1ef1239
commit
906b9e7d4c
@ -100,5 +100,6 @@ def response(resp) -> EngineResults:
|
||||
if autotranslate.ok and autotranslate.text:
|
||||
item_list.insert(0, results.types.Translations.Item(text=autotranslate.text))
|
||||
|
||||
results.add(results.types.Translations(translations=item_list, url=resp.search_params["url"]))
|
||||
if item_list:
|
||||
results.add(results.types.Translations(translations=item_list, url=resp.search_params["url"]))
|
||||
return results
|
||||
|
@ -19,7 +19,7 @@ ahmia_blacklist: list = []
|
||||
|
||||
|
||||
def on_result(_request, _search, result) -> bool:
|
||||
if not result.get('is_onion') or not result.get('parsed_url'):
|
||||
if not getattr(result, 'is_onion', None) or not getattr(result, 'parsed_url', None):
|
||||
return True
|
||||
result_hash = md5(result['parsed_url'].hostname.encode()).hexdigest()
|
||||
return result_hash not in ahmia_blacklist
|
||||
|
@ -139,7 +139,7 @@ low_priority: set = _load_regular_expressions('low_priority') or set() # type:
|
||||
|
||||
|
||||
def _matches_parsed_url(result, pattern):
|
||||
return parsed in result and pattern.search(result[parsed].netloc)
|
||||
return result[parsed] and (parsed in result and pattern.search(result[parsed].netloc))
|
||||
|
||||
|
||||
def on_result(_request, _search, result) -> bool:
|
||||
@ -151,7 +151,7 @@ def on_result(_request, _search, result) -> bool:
|
||||
# logger.debug(result['url'])
|
||||
|
||||
for url_field in _url_fields:
|
||||
if not result.get(url_field):
|
||||
if not getattr(result, url_field, None):
|
||||
continue
|
||||
|
||||
url_src = urlparse(result[url_field])
|
||||
@ -164,7 +164,7 @@ def on_result(_request, _search, result) -> bool:
|
||||
return False
|
||||
|
||||
for url_field in _url_fields:
|
||||
if not result.get(url_field):
|
||||
if not getattr(result, url_field, None):
|
||||
continue
|
||||
|
||||
url_src = urlparse(result[url_field])
|
||||
|
@ -116,6 +116,10 @@ class Translations(BaseAnswer, kw_only=True):
|
||||
translations: list[Translations.Item]
|
||||
"""List of translations."""
|
||||
|
||||
def __post_init__(self):
|
||||
if not self.translations:
|
||||
raise ValueError("Translation does not have an item in the list translations")
|
||||
|
||||
class Item(msgspec.Struct, kw_only=True):
|
||||
"""A single element of the translations / a translation. A translation
|
||||
consists of at least a mandatory ``text`` property (the translation) ,
|
||||
|
Loading…
Reference in New Issue
Block a user