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).
This commit is contained in:
Cqoicebordel 2015-01-05 02:04:23 +01:00
parent 7b531c6fce
commit 4a195e0b28
10 changed files with 147 additions and 12 deletions

View file

@ -6,10 +6,11 @@
# @using-api yes
# @results JSON
# @stable yes
# @parse url, title, content
# @parse url, title, content, publishedDate, embedded
from json import loads
from urllib import urlencode
from urllib import urlencode, quote_plus
from dateutil import parser
# engine dependent config
categories = ['music']
@ -27,6 +28,10 @@ search_url = url + 'search?{query}'\
'&linked_partitioning=1'\
'&client_id={client_id}' # noqa
embedded_url = '<iframe width="100%" height="166" ' +\
'scrolling="no" frameborder="no" ' +\
'data-src="https://w.soundcloud.com/player/?url={uri}"></iframe>'
# do search-request
def request(query, params):
@ -50,10 +55,15 @@ def response(resp):
if result['kind'] in ('track', 'playlist'):
title = result['title']
content = result['description']
publishedDate = parser.parse(result['last_modified'])
uri = quote_plus(result['uri'])
embedded = embedded_url.format(uri=uri)
# append result
results.append({'url': result['permalink_url'],
'title': title,
'publishedDate': publishedDate,
'embedded': embedded,
'content': content})
# return results