logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: ff0bbd3566ea126b0cd0cb8b9c60d30c8105e765
parent: 141b04c6dde9df0e6b7f2e2b30ec8131429c8932
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Mon, 30 Dec 2013 14:04:37 -0800

Merge pull request #10 from dalf/master

bug fixes and dailymotion engine

Diffstat:

engines.cfg_sample | 5+++++
searx/engines/dailymotion.py | 32++++++++++++++++++++++++++++++++
searx/engines/flickr.py | 2+-
searx/engines/xpath.py | 2+-
4 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/engines.cfg_sample b/engines.cfg_sample @@ -79,3 +79,8 @@ suggestion_xpath = //div[@id="satat"]//a [youtube] engine = youtube categories = videos + +[dailymotion] +engine = dailymotion +categories = videos + diff --git a/searx/engines/dailymotion.py b/searx/engines/dailymotion.py @@ -0,0 +1,32 @@ +from urllib import urlencode +from json import loads +from cgi import escape + +categories = ['videos'] +localization = 'en' + +# see http://www.dailymotion.com/doc/api/obj-video.html +search_url = 'https://api.dailymotion.com/videos?fields=title,description,duration,url,thumbnail_360_url&sort=relevance&limit=25&page=1&{query}' + +def request(query, params): + global search_url + params['url'] = search_url.format(query=urlencode({'search': query, 'localization': localization })) + return params + + +def response(resp): + results = [] + search_res = loads(resp.text) + if not 'list' in search_res: + return results + for res in search_res['list']: + title = res['title'] + url = res['url'] + if res['thumbnail_360_url']: + content = '<a href="{0}" title="{0}" ><img src="{1}" /></a><br />'.format(url, res['thumbnail_360_url']) + else: + content = '' + if res['description']: + content += escape(res['description'][:500]) + results.append({'url': url, 'title': title, 'content': content}) + return results diff --git a/searx/engines/flickr.py b/searx/engines/flickr.py @@ -7,7 +7,7 @@ from urlparse import urljoin categories = ['images'] url = 'https://secure.flickr.com/' -search_url = url+'search/?q={query}' +search_url = url+'search/?{query}' def request(query, params): params['url'] = search_url.format(query=urlencode({'q': query})) diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py @@ -28,7 +28,7 @@ def extract_url(xpath_results): url = xpath_results[0].attrib.get('href') else: url = xpath_results.attrib.get('href') - if not url.startswith('http://') or not url.startswith('https://'): + if not url.startswith('http://') and not url.startswith('https://'): url = 'http://'+url parsed_url = urlparse(url) if not parsed_url.netloc: