forked from zaclys/searxng
Merge branch 'master' into patch-2
This commit is contained in:
commit
8f744ddfb2
|
@ -1,4 +1,4 @@
|
||||||
FROM alpine:3.7
|
FROM alpine:3.8
|
||||||
LABEL maintainer="searx <https://github.com/asciimoo/searx>"
|
LABEL maintainer="searx <https://github.com/asciimoo/searx>"
|
||||||
LABEL description="A privacy-respecting, hackable metasearch engine."
|
LABEL description="A privacy-respecting, hackable metasearch engine."
|
||||||
|
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
"""
|
|
||||||
500px (Images)
|
|
||||||
|
|
||||||
@website https://500px.com
|
|
||||||
@provide-api yes (https://developers.500px.com/)
|
|
||||||
|
|
||||||
@using-api no
|
|
||||||
@results HTML
|
|
||||||
@stable no (HTML can change)
|
|
||||||
@parse url, title, thumbnail, img_src, content
|
|
||||||
|
|
||||||
@todo rewrite to api
|
|
||||||
"""
|
|
||||||
|
|
||||||
from json import loads
|
|
||||||
from searx.url_utils import urlencode, urljoin
|
|
||||||
|
|
||||||
# engine dependent config
|
|
||||||
categories = ['images']
|
|
||||||
paging = True
|
|
||||||
|
|
||||||
# search-url
|
|
||||||
base_url = 'https://500px.com'
|
|
||||||
search_url = 'https://api.500px.com/v1/photos/search?type=photos'\
|
|
||||||
'&{query}'\
|
|
||||||
'&image_size%5B%5D=4'\
|
|
||||||
'&image_size%5B%5D=20'\
|
|
||||||
'&image_size%5B%5D=21'\
|
|
||||||
'&image_size%5B%5D=1080'\
|
|
||||||
'&image_size%5B%5D=1600'\
|
|
||||||
'&image_size%5B%5D=2048'\
|
|
||||||
'&include_states=true'\
|
|
||||||
'&formats=jpeg%2Clytro'\
|
|
||||||
'&include_tags=true'\
|
|
||||||
'&exclude_nude=true'\
|
|
||||||
'&page={pageno}'\
|
|
||||||
'&rpp=50'\
|
|
||||||
'&sdk_key=b68e60cff4c929bedea36ca978830c5caca790c3'
|
|
||||||
|
|
||||||
|
|
||||||
# do search-request
|
|
||||||
def request(query, params):
|
|
||||||
params['url'] = search_url.format(pageno=params['pageno'],
|
|
||||||
query=urlencode({'term': query}))
|
|
||||||
|
|
||||||
return params
|
|
||||||
|
|
||||||
|
|
||||||
# get response from search-request
|
|
||||||
def response(resp):
|
|
||||||
results = []
|
|
||||||
|
|
||||||
response_json = loads(resp.text)
|
|
||||||
|
|
||||||
# parse results
|
|
||||||
for result in response_json['photos']:
|
|
||||||
url = urljoin(base_url, result['url'])
|
|
||||||
title = result['name']
|
|
||||||
# last index is the biggest resolution
|
|
||||||
img_src = result['image_url'][-1]
|
|
||||||
thumbnail_src = result['image_url'][0]
|
|
||||||
content = result['description'] or ''
|
|
||||||
|
|
||||||
# append result
|
|
||||||
results.append({'url': url,
|
|
||||||
'title': title,
|
|
||||||
'img_src': img_src,
|
|
||||||
'content': content,
|
|
||||||
'thumbnail_src': thumbnail_src,
|
|
||||||
'template': 'images.html'})
|
|
||||||
|
|
||||||
# return results
|
|
||||||
return results
|
|
|
@ -264,6 +264,9 @@ class Preferences(object):
|
||||||
'False': False,
|
'False': False,
|
||||||
'True': True}),
|
'True': True}),
|
||||||
'doi_resolver': MultipleChoiceSetting(['oadoi.org'], choices=DOI_RESOLVERS),
|
'doi_resolver': MultipleChoiceSetting(['oadoi.org'], choices=DOI_RESOLVERS),
|
||||||
|
'oscar-style': EnumStringSetting(
|
||||||
|
settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'),
|
||||||
|
choices=['', 'logicodev', 'logicodev-dark', 'pointhi']),
|
||||||
}
|
}
|
||||||
|
|
||||||
self.engines = EnginesSetting('engines', choices=engines)
|
self.engines = EnginesSetting('engines', choices=engines)
|
||||||
|
|
|
@ -147,7 +147,8 @@ def search_one_request_safe(engine_name, query, request_params, result_container
|
||||||
if requests_exception:
|
if requests_exception:
|
||||||
# update continuous_errors / suspend_end_time
|
# update continuous_errors / suspend_end_time
|
||||||
engine.continuous_errors += 1
|
engine.continuous_errors += 1
|
||||||
engine.suspend_end_time = time() + min(60, engine.continuous_errors)
|
engine.suspend_end_time = time() + min(settings['search']['max_ban_time_on_fail'],
|
||||||
|
engine.continuous_errors * settings['search']['ban_time_on_fail'])
|
||||||
else:
|
else:
|
||||||
# no HTTP error (perhaps an engine error)
|
# no HTTP error (perhaps an engine error)
|
||||||
# anyway, reset the suspend variables
|
# anyway, reset the suspend variables
|
||||||
|
|
|
@ -6,6 +6,8 @@ search:
|
||||||
safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
|
safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
|
||||||
autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
|
autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
|
||||||
language : "en-US"
|
language : "en-US"
|
||||||
|
ban_time_on_fail : 5 # ban time in seconds after engine errors
|
||||||
|
max_ban_time_on_fail : 120 # max ban time in seconds after engine errors
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port : 8888
|
port : 8888
|
||||||
|
@ -20,6 +22,8 @@ ui:
|
||||||
templates_path : "" # Custom templates path - leave it blank if you didn't change
|
templates_path : "" # Custom templates path - leave it blank if you didn't change
|
||||||
default_theme : oscar # ui theme
|
default_theme : oscar # ui theme
|
||||||
default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
|
default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
|
||||||
|
theme_args :
|
||||||
|
oscar_style : logicodev # default style of oscar
|
||||||
|
|
||||||
# searx supports result proxification using an external service: https://github.com/asciimoo/morty
|
# searx supports result proxification using an external service: https://github.com/asciimoo/morty
|
||||||
# uncomment below section if you have running morty proxy
|
# uncomment below section if you have running morty proxy
|
||||||
|
@ -204,10 +208,6 @@ engines:
|
||||||
shortcut : fa
|
shortcut : fa
|
||||||
disabled : True
|
disabled : True
|
||||||
|
|
||||||
- name : 500px
|
|
||||||
engine : www500px
|
|
||||||
shortcut : px
|
|
||||||
|
|
||||||
- name : 1x
|
- name : 1x
|
||||||
engine : www1x
|
engine : www1x
|
||||||
shortcut : 1x
|
shortcut : 1x
|
||||||
|
|
|
@ -60,3 +60,4 @@ Searx can be added to your browser's search bar; moreover, it can be set as the
|
||||||
<p><a href="{{ url_for('stats') }}">Stats page</a> contains some useful data about the engines used.</p>
|
<p><a href="{{ url_for('stats') }}">Stats page</a> contains some useful data about the engines used.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
{% include "__common__/aboutextend.html" ignore missing %}
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue