From 4a195e0b28fdd940e046c442032c816095416fec Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Mon, 5 Jan 2015 02:04:23 +0100 Subject: Integrated media in results + Deezer Engine New "embedded" item for the results, allow to give an iframe to display the media directly in the results. Note that the attributes src of the iframes are not set, but instead data-src is set, allowing to only load the iframe when clicked. Deezer engine based on public API (no key). --- searx/engines/deezer.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 searx/engines/deezer.py (limited to 'searx/engines/deezer.py') diff --git a/searx/engines/deezer.py b/searx/engines/deezer.py new file mode 100644 index 000000000..6c26b6aeb --- /dev/null +++ b/searx/engines/deezer.py @@ -0,0 +1,62 @@ +## Deezer (Music) +# +# @website https://deezer.com +# @provide-api yes (http://developers.deezer.com/api/) +# +# @using-api yes +# @results JSON +# @stable yes +# @parse url, title, content, embedded + +from json import loads +from urllib import urlencode + +# engine dependent config +categories = ['music'] +paging = True + +# search-url +url = 'http://api.deezer.com/' +search_url = url + 'search?{query}&index={offset}' + +embedded_url = '' + + +# do search-request +def request(query, params): + offset = (params['pageno'] - 1) * 25 + + params['url'] = search_url.format(query=urlencode({'q': query}), + offset=offset) + + return params + + +# get response from search-request +def response(resp): + results = [] + + search_res = loads(resp.text) + + # parse results + for result in search_res.get('data', []): + if result['type'] == 'track': + print result + title = result['title'] + url = result['link'] + content = result['artist']['name'] +\ + " • " +\ + result['album']['title'] +\ + " • " + result['title'] + embedded = embedded_url.format(audioid=result['id']) + + # append result + results.append({'url': url, + 'title': title, + 'embedded': embedded, + 'content': content}) + + # return results + return results -- cgit v1.2.3 From 0ca04be55dec06c5ef737febb128d3dc36c3b5d7 Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Mon, 5 Jan 2015 20:24:33 +0100 Subject: Remove print --- searx/engines/deezer.py | 1 - 1 file changed, 1 deletion(-) (limited to 'searx/engines/deezer.py') diff --git a/searx/engines/deezer.py b/searx/engines/deezer.py index 6c26b6aeb..433ceffa1 100644 --- a/searx/engines/deezer.py +++ b/searx/engines/deezer.py @@ -43,7 +43,6 @@ def response(resp): # parse results for result in search_res.get('data', []): if result['type'] == 'track': - print result title = result['title'] url = result['link'] content = result['artist']['name'] +\ -- cgit v1.2.3