[mod] add searx.search.EngineRef

was previously a Dict with two or three keys: name, category, from_bang
make clear that this is a engine reference (see tests/unit/test_search.py for example)
all variables using this class are renamed accordingly.
This commit is contained in:
Alexandre Flament
2020-09-22 16:22:22 +02:00
parent 2dbc0de0cd
commit 2929495112
4 changed files with 58 additions and 57 deletions

View File

@@ -20,9 +20,8 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
import re
from searx.languages import language_codes
from searx.engines import (
categories, engines, engine_shortcuts
)
from searx.engines import categories, engines, engine_shortcuts
from searx.search import EngineRef
VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
@@ -40,7 +39,7 @@ class RawTextQuery:
self.disabled_engines = disabled_engines
self.query_parts = []
self.engines = []
self.enginerefs = []
self.languages = []
self.timeout_limit = None
self.external_bang = None
@@ -135,26 +134,21 @@ class RawTextQuery:
parse_next = True
engine_name = engine_shortcuts[prefix]
if engine_name in engines:
self.engines.append({'category': 'none',
'name': engine_name,
'from_bang': True})
self.enginerefs.append(EngineRef(engine_name, 'none', True))
# check if prefix is equal with engine name
elif prefix in engines:
parse_next = True
self.engines.append({'category': 'none',
'name': prefix,
'from_bang': True})
self.enginerefs.append(EngineRef(prefix, 'none', True))
# check if prefix is equal with categorie name
elif prefix in categories:
# using all engines for that search, which
# are declared under that categorie name
parse_next = True
self.engines.extend({'category': prefix,
'name': engine.name}
for engine in categories[prefix]
if (engine.name, prefix) not in self.disabled_engines)
self.enginerefs.extend(EngineRef(engine.name, prefix)
for engine in categories[prefix]
if (engine.name, prefix) not in self.disabled_engines)
if query_part[0] == '!':
self.specific = True