Merge branch 'master' into patch-2

This commit is contained in:
Noémi Ványi 2018-08-19 21:49:07 +02:00 committed by GitHub
commit 8f744ddfb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 11 additions and 113 deletions

View File

@ -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."

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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