From 887f7d98dec169f185956fc73f8d06923f10d920 Mon Sep 17 00:00:00 2001 From: Christophe Benz Date: Tue, 27 Apr 2010 19:00:45 +0200 Subject: [PATCH] add thumbnails to videoob web --- weboob/frontends/videoob_web/application.py | 36 +++++++++++++------ weboob/frontends/videoob_web/public/style.css | 5 +++ .../frontends/videoob_web/templates/base.mako | 1 + .../videoob_web/templates/index.mako | 32 ++++++++++------- 4 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 weboob/frontends/videoob_web/public/style.css diff --git a/weboob/frontends/videoob_web/application.py b/weboob/frontends/videoob_web/application.py index 75701d49..99c74d2f 100644 --- a/weboob/frontends/videoob_web/application.py +++ b/weboob/frontends/videoob_web/application.py @@ -36,7 +36,7 @@ from weboob.tools.application import BaseApplication __all__ = ['VideoobWeb'] -template_lookup = TemplateLookup(directories=['%s/templates' % os.path.dirname(__file__)], +template_lookup = TemplateLookup(directories=[os.path.join(os.path.dirname(__file__), 'templates')], output_encoding='utf-8', encoding_errors='replace') @@ -50,13 +50,28 @@ class VideoobWeb(BaseApplication): map.connect('index', '/', method='index') results = map.routematch(environ=req.environ) - if not results: - return exc.HTTPNotFound() - match, route = results - req.urlvars = ((), match) - kwargs = match.copy() - method = kwargs.pop('method') - return getattr(self, method)(req, **kwargs) + if results: + match, route = results + req.urlvars = ((), match) + kwargs = match.copy() + method = kwargs.pop('method') + return getattr(self, method)(req, **kwargs) + else: + public_path = os.path.join(os.path.dirname(__file__), 'public') + if not os.path.exists(public_path): + return exc.HTTPNotFound() + path = req.path + if path.startswith('/'): + path = path[1:] + public_file_path = os.path.join(public_path, path) + if os.path.exists(public_file_path): + if path.endswith('.css'): + req.response.content_type = 'text/css' + elif path.endswith('.js'): + req.response.content_type = 'text/javascript' + return open(public_file_path, 'r').read().strip() + else: + return exc.HTTPNotFound() def main(self, argv): self.load_config() @@ -79,8 +94,9 @@ class VideoobWeb(BaseApplication): if q: for backend in self.weboob.iter_backends(): videos = [dict(title=video.title, - page_url=video.page_url, - url=video.url if video.url else '/download?id=%s' % video.id + page_url=video.page_url, + url=video.url if video.url else '/download?id=%s' % video.id, + thumbnail_url=video.thumbnail_url, ) \ for video in backend.iter_search_results(pattern=q, nsfw=nsfw)] if videos: diff --git a/weboob/frontends/videoob_web/public/style.css b/weboob/frontends/videoob_web/public/style.css new file mode 100644 index 00000000..1ceedc5a --- /dev/null +++ b/weboob/frontends/videoob_web/public/style.css @@ -0,0 +1,5 @@ +.video-item +{ + margin-bottom: 5ex; + margin-left: 2em; +} diff --git a/weboob/frontends/videoob_web/templates/base.mako b/weboob/frontends/videoob_web/templates/base.mako index 30e759e7..6b9c4a61 100644 --- a/weboob/frontends/videoob_web/templates/base.mako +++ b/weboob/frontends/videoob_web/templates/base.mako @@ -9,6 +9,7 @@ Videoob Web ${self.title()} + ${next.css()} ${next.body()} diff --git a/weboob/frontends/videoob_web/templates/index.mako b/weboob/frontends/videoob_web/templates/index.mako index fe19529f..a0a1f135 100644 --- a/weboob/frontends/videoob_web/templates/index.mako +++ b/weboob/frontends/videoob_web/templates/index.mako @@ -2,9 +2,19 @@ <%inherit file="base.mako"/> -<%def name="video_link(item)"> - ${item['title']} - ## (download) +<%def name="css()" filter="trim"> + + + +<%def name="video_item(item)"> +
+ + ${item['title']} +
+ ${item['title']} +
+ ## (download) +
<%def name="body()"> @@ -18,19 +28,15 @@
% if merge: - + % for item in results: + ${video_item(item)} + % endfor % else: % for backend, items in sorted(results.iteritems()):

${backend}

- + % for item in items: + ${video_item(item)} + % endfor % endfor % endif