diff options
| author | Adam Tauber <asciimoo@gmail.com> | 2015-01-09 04:15:57 +0100 |
|---|---|---|
| committer | Adam Tauber <asciimoo@gmail.com> | 2015-01-09 04:15:57 +0100 |
| commit | d6b1ff08ad2ad3af8ef50c3611a18c633a78249e (patch) | |
| tree | f139bab9b9262327390d3d0da4c6c1efd073f20e /searx/engines/deezer.py | |
| parent | 299a80a1eb2eecb80f5c50da261a9eab1900b572 (diff) | |
| parent | e4681da20f4dc2024609454771aa005bc05ba3f3 (diff) | |
Merge branch 'master' of github.com:asciimoo/searx
Diffstat (limited to 'searx/engines/deezer.py')
| -rw-r--r-- | searx/engines/deezer.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/searx/engines/deezer.py b/searx/engines/deezer.py new file mode 100644 index 000000000..433ceffa1 --- /dev/null +++ b/searx/engines/deezer.py @@ -0,0 +1,61 @@ +## 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 = '<iframe scrolling="no" frameborder="0" allowTransparency="true" ' +\ + 'data-src="http://www.deezer.com/plugins/player?type=tracks&id={audioid}" ' +\ + 'width="540" height="80"></iframe>' + + +# 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': + 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 |