mirror of
https://github.com/searxng/searxng.git
synced 2024-12-19 15:56:28 +00:00
Merge pull request #2397 from dalf/update-ci
updates for Python 3.9 / update CI
This commit is contained in:
commit
59217bb5be
6 changed files with 21 additions and 15 deletions
7
.github/workflows/integration.yml
vendored
7
.github/workflows/integration.yml
vendored
|
@ -22,7 +22,14 @@ jobs:
|
|||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: 'x64'
|
||||
- name: Cache Python dependencies
|
||||
id: cache-python
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ./local
|
||||
key: python-${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('requirements*.txt', 'setup.py') }}
|
||||
- name: Install Python dependencies
|
||||
if: steps.cache-python.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
make V=1 install
|
||||
make V=1 gecko.driver
|
||||
|
|
|
@ -46,8 +46,8 @@ def _match_query(query):
|
|||
|
||||
try:
|
||||
key, value = query.split(':')
|
||||
except:
|
||||
raise ValueError('query format must be "key:value"')
|
||||
except Exception as e:
|
||||
raise ValueError('query format must be "key:value"') from e
|
||||
|
||||
return {"query": {"match": {key: {'query': value}}}}
|
||||
|
||||
|
@ -71,8 +71,8 @@ def _term_query(query):
|
|||
|
||||
try:
|
||||
key, value = query.split(':')
|
||||
except:
|
||||
raise ValueError('query format must be key:value')
|
||||
except Exception as e:
|
||||
raise ValueError('query format must be key:value') from e
|
||||
|
||||
return {'query': {'term': {key: value}}}
|
||||
|
||||
|
@ -86,8 +86,8 @@ def _terms_query(query):
|
|||
|
||||
try:
|
||||
key, values = query.split(':')
|
||||
except:
|
||||
raise ValueError('query format must be key:value1,value2')
|
||||
except Exception as e:
|
||||
raise ValueError('query format must be key:value1,value2') from e
|
||||
|
||||
return {'query': {'terms': {key: values.split(',')}}}
|
||||
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
# @todo embedded (needs some md5 from video page)
|
||||
|
||||
from json import loads
|
||||
from html import unescape
|
||||
from urllib.parse import urlencode
|
||||
from lxml import html
|
||||
from dateutil import parser
|
||||
from html.parser import HTMLParser
|
||||
from searx.utils import extract_text
|
||||
|
||||
|
||||
|
@ -55,13 +55,12 @@ def response(resp):
|
|||
if "content" not in response:
|
||||
return []
|
||||
dom = html.fromstring(response["content"])
|
||||
p = HTMLParser()
|
||||
|
||||
# parse results
|
||||
for result in dom.xpath(results_xpath):
|
||||
videoid = result.xpath(url_xpath)[0]
|
||||
url = base_url + videoid
|
||||
title = p.unescape(extract_text(result.xpath(title_xpath)))
|
||||
title = unescape(extract_text(result.xpath(title_xpath)))
|
||||
try:
|
||||
thumbnail = extract_text(result.xpath(thumbnail_xpath)[0])
|
||||
except:
|
||||
|
|
|
@ -24,9 +24,9 @@ def load_yaml(file_name):
|
|||
with open(file_name, 'r', encoding='utf-8') as settings_yaml:
|
||||
return yaml.safe_load(settings_yaml)
|
||||
except IOError as e:
|
||||
raise SearxSettingsException(e, file_name)
|
||||
raise SearxSettingsException(e, file_name) from e
|
||||
except yaml.YAMLError as e:
|
||||
raise SearxSettingsException(e, file_name)
|
||||
raise SearxSettingsException(e, file_name) from e
|
||||
|
||||
|
||||
def get_default_settings_path():
|
||||
|
|
|
@ -522,7 +522,7 @@ def get_xpath(xpath_spec):
|
|||
try:
|
||||
result = XPath(xpath_spec)
|
||||
except XPathSyntaxError as e:
|
||||
raise SearxXPathSyntaxException(xpath_spec, str(e.msg))
|
||||
raise SearxXPathSyntaxException(xpath_spec, str(e.msg)) from e
|
||||
xpath_cache[xpath_spec] = result
|
||||
return result
|
||||
|
||||
|
@ -553,7 +553,7 @@ def eval_xpath(element, xpath_spec):
|
|||
return xpath(element)
|
||||
except XPathError as e:
|
||||
arg = ' '.join([str(i) for i in e.args])
|
||||
raise SearxEngineXPathException(xpath_spec, arg)
|
||||
raise SearxEngineXPathException(xpath_spec, arg) from e
|
||||
|
||||
|
||||
def eval_xpath_list(element, xpath_spec, min_len=None):
|
||||
|
|
|
@ -105,8 +105,8 @@ def parse_timeout(form: Dict[str, str], raw_text_query: RawTextQuery) -> Optiona
|
|||
return None
|
||||
try:
|
||||
return float(timeout_limit)
|
||||
except ValueError:
|
||||
raise SearxParameterException('timeout_limit', timeout_limit)
|
||||
except ValueError as e:
|
||||
raise SearxParameterException('timeout_limit', timeout_limit) from e
|
||||
|
||||
|
||||
def parse_category_form(query_categories: List[str], name: str, value: str) -> None:
|
||||
|
|
Loading…
Reference in a new issue