add merge option and some sorting

This commit is contained in:
Christophe Benz 2010-04-27 15:19:51 +02:00 committed by Romain Bignon
commit c89ba43d07
2 changed files with 30 additions and 12 deletions

View file

@ -71,17 +71,25 @@ class VideoobWeb(BaseApplication):
nsfw = req.params.get('nsfw') nsfw = req.params.get('nsfw')
nsfw = False if not nsfw or nsfw == '0' else True nsfw = False if not nsfw or nsfw == '0' else True
q = req.params.get('q', u'') q = req.params.get('q', u'')
merge = req.params.get('merge')
merge = False if not merge or merge == '0' else True
c['merge'] = merge
c['form_data'] = dict(q=q) c['form_data'] = dict(q=q)
c['results'] = {} c['results'] = [] if merge else {}
if q: if q:
for backend in self.weboob.iter_backends(): for backend in self.weboob.iter_backends():
items = [dict(title=video.title, videos = [dict(title=video.title,
page_url=video.page_url, page_url=video.page_url,
url=video.url if video.url else '/download?id=%s' % video.id url=video.url if video.url else '/download?id=%s' % video.id
) \ ) \
for video in backend.iter_search_results(pattern=q, nsfw=nsfw)] for video in backend.iter_search_results(pattern=q, nsfw=nsfw)]
if items: if videos:
c['results'][backend.name] = items if merge:
c['results'].extend(videos)
else:
c['results'][backend.name] = videos
if merge:
c['results'] = sorted(c['results'], key=lambda video: video['title'].lower())
template = template_lookup.get_template('index.mako') template = template_lookup.get_template('index.mako')
buf = StringIO() buf = StringIO()
ctx = Context(buf, **c) ctx = Context(buf, **c)

View file

@ -2,6 +2,11 @@
<%inherit file="base.mako"/> <%inherit file="base.mako"/>
<%def name="video_link(item)">
<a href="${item['page_url']}">${item['title']}</a>
## (<a href="${item['url']}"><em>download</em></a>)
</%def>
<%def name="body()"> <%def name="body()">
<h1>Videoob Web</h1> <h1>Videoob Web</h1>
<div id="search"> <div id="search">
@ -12,16 +17,21 @@
</form> </form>
</div> </div>
<div id="results"> <div id="results">
% for backend, items in results.iteritems(): % if merge:
<h2>${backend}</h2>
<ul> <ul>
% for item in items: % for item in results:
<li> <li>${video_link(item)}</li>
<a href="${item['page_url']}">${item['title']}</a>
## (<a href="${item['url']}"><em>download</em></a>)
</li>
% endfor % endfor
</ul> </ul>
% endfor % else:
% for backend, items in sorted(results.iteritems()):
<h2>${backend}</h2>
<ul>
% for item in items:
<li>${video_link(item)}</li>
% endfor
</ul>
% endfor
% endif
</div> </div>
</%def> </%def>