Merge branch 'featured_result' of https://github.com/pw3t/searx

This commit is contained in:
asciimoo 2014-01-19 22:39:56 +01:00
commit bfdd6ebb92
15 changed files with 52 additions and 7 deletions

View file

@ -14,5 +14,7 @@ def request(query, params):
def response(resp): def response(resp):
search_results = loads(resp.text) search_results = loads(resp.text)
res = search_results.get('query', {}).get('search', []) res = search_results.get('query', {}).get('search', [])
return [{'url': url + 'wiki/' + quote(result['title'].replace(' ', '_').encode('utf-8')), return [{'url': url + 'wiki/' + quote(result['title'].replace(' ', '_').encode('utf-8')),
'title': result['title']} for result in res[:int(number_of_results)]] 'title': result['title']} for result in res[:int(number_of_results)]]

View file

@ -35,7 +35,11 @@ def response(resp):
for result in dom.xpath(results_xpath): for result in dom.xpath(results_xpath):
url = base_url + result.xpath(url_xpath)[0] url = base_url + result.xpath(url_xpath)[0]
title = p.unescape(extract_text(result.xpath(title_xpath))) title = p.unescape(extract_text(result.xpath(title_xpath)))
content = '<a href="{0}"> <img src="{2}"/> </a>'.format(url, title, extract_text(result.xpath(content_xpath)[0])) thumbnail = extract_text(result.xpath(content_xpath)[0])
results.append({'url': url, 'title': title, 'content': content}) content = '<a href="{0}"> <img src="{2}"/> </a>'.format(url, title, thumbnail)
results.append({'url': url
, 'title': title
, 'content': content
, 'template':'videos.html'
, 'thumbnail': thumbnail})
return results return results

View file

@ -26,14 +26,21 @@ def response(resp):
url = url[:-1] url = url[:-1]
title = result['title']['$t'] title = result['title']['$t']
content = '' content = ''
thumbnail = ''
if len(result['media$group']['media$thumbnail']): if len(result['media$group']['media$thumbnail']):
content += '<a href="{0}" title="{0}" ><img src="{1}" /></a>'.format(url, result['media$group']['media$thumbnail'][0]['url']) thumbnail = result['media$group']['media$thumbnail'][0]['url']
content += '<a href="{0}" title="{0}" ><img src="{1}" /></a>'.format(url, thumbnail)
if len(content): if len(content):
content += '<br />' + result['content']['$t'] content += '<br />' + result['content']['$t']
else: else:
content = result['content']['$t'] content = result['content']['$t']
results.append({'url': url, 'title': title, 'content': content}) results.append({'url': url
, 'title': title
, 'content': content
, 'template':'videos.html'
, 'thumbnail':thumbnail})
return results return results

View file

@ -79,6 +79,7 @@ a { text-decoration: none; color: #1a11be; }
a:visited { color: #7b11be; } a:visited { color: #7b11be; }
.result { margin: 19px 0 18px 0; padding: 0; max-width: 55em; clear: both; } .result { margin: 19px 0 18px 0; padding: 0; max-width: 55em; clear: both; }
.result:hover { background: #e8e7e6; }
.result_title { margin-bottom: 0; } .result_title { margin-bottom: 0; }
.result h3 { font-size: 1em; word-wrap:break-word; margin: 5px 0 1px 0; padding: 0 } .result h3 { font-size: 1em; word-wrap:break-word; margin: 5px 0 1px 0; padding: 0 }
.result .content { font-size: 0.8em; margin: 0; padding: 0; max-width: 54em; word-wrap:break-word; line-height: 1.24; } .result .content { font-size: 0.8em; margin: 0; padding: 0; max-width: 54em; word-wrap:break-word; line-height: 1.24; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,5 +1,14 @@
<div class="result {{ result.class }}"> <div class="result {{ result.class }}">
<h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
{% if result['favicon'] %}
<div style="float:left; margin:2px;">
<img width="18" height="18" src="static/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}.ico" title="{{result['favicon']}}.ico" />
</div>
{% endif %}
<div>
<h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3></br>
<p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p> <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
<p class="url">{{ result.pretty_url }}</p> <p class="url">{{ result.pretty_url }}</p>
</div> </div>
</div>

View file

@ -0,0 +1,13 @@
<div class="result">
{% if result['favicon'] %}
<div style="float:left; margin:2px;">
<img width="18" height="18" src="static/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}.ico" title="{{result['favicon']}}.ico" />
</div>
{% endif %}
<p>
<h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
<a href="{{ result.url }}"><img width="300" height="170" src="{{ result.thumbnail }}" title={{ result.title }} alt=" {{ result.title }}"/></a>
<p class="url">{{ result.url }}</p>
</p>
</div>

View file

@ -9,9 +9,12 @@
{% if suggestions %} {% if suggestions %}
<div id="suggestions"><span>Suggestions: </span>{% for suggestion in suggestions %}<form method="post" action="/"><input type="hidden" name="q" value="{{suggestion}}"><input type="submit" value="{{ suggestion }}" /></form>{% endfor %}</div> <div id="suggestions"><span>Suggestions: </span>{% for suggestion in suggestions %}<form method="post" action="/"><input type="hidden" name="q" value="{{suggestion}}"><input type="submit" value="{{ suggestion }}" /></form>{% endfor %}</div>
{% endif %} {% endif %}
<div id ="result_count"> <div id ="result_count">
Number of results: {{ number_of_results }} Number of results: {{ number_of_results }}
</div> </div>
{% for result in results %} {% for result in results %}
{% if result['template'] %} {% if result['template'] %}
{% include 'result_templates/'+result['template'] %} {% include 'result_templates/'+result['template'] %}

View file

@ -120,6 +120,7 @@ def index():
results, suggestions = search(query, request, selected_engines) results, suggestions = search(query, request, selected_engines)
featured_results = []
for result in results: for result in results:
if request_data.get('format', 'html') == 'html': if request_data.get('format', 'html') == 'html':
if 'content' in result: if 'content' in result:
@ -134,6 +135,10 @@ def index():
else: else:
result['pretty_url'] = result['url'] result['pretty_url'] = result['url']
for engine in result['engines']:
if engine in ['wikipedia', 'youtube', 'vimeo', 'soundcloud', 'twitter', 'stackoverflow', 'github']:
result['favicon'] = engine
if request_data.get('format') == 'json': if request_data.get('format') == 'json':
return Response(json.dumps({'query': query, 'results': results}), mimetype='application/json') return Response(json.dumps({'query': query, 'results': results}), mimetype='application/json')
elif request_data.get('format') == 'csv': elif request_data.get('format') == 'csv':
@ -162,7 +167,8 @@ def index():
,results=results ,results=results
,q=request_data['q'] ,q=request_data['q']
,selected_categories=selected_categories ,selected_categories=selected_categories
,number_of_results=len(results) ,number_of_results=len(results)+len(featured_results)
,featured_results=featured_results
,suggestions=suggestions ,suggestions=suggestions
) )