From 99ff8e472f719684de95640372be79ed99c506c7 Mon Sep 17 00:00:00 2001 From: Juda Kaleta Date: Thu, 27 Jun 2013 10:10:27 +0200 Subject: [PATCH] Simplified way to embed videos --- README.rst | 18 +++++++++++++++--- embed_video/templatetags/embed_video_tags.py | 5 ++++- embed_video/tests/tests.py | 9 +++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index a738371..252a414 100644 --- a/README.rst +++ b/README.rst @@ -55,12 +55,23 @@ Usage of variables: :: - {% video item.video as video %} - URL: {{ video.url }} - Thumbnail: {{ video.thumbnail }} + {% video item.video as my_video %} + URL: {{ my_video.url }} + Thumbnail: {{ my_video.thumbnail }} {% endvideo %} +There is a simplier way, if you don't need work with parameters as +``my_video.url`` or ``my_video.thumbnail`` and you want to use just ``embed`` +tag. + +:: + + {{ 'http://www.youtube.com/watch?v=guXyvo2FfLs'|embed:'large' }} + + + + Model examples --------------- @@ -82,6 +93,7 @@ TODO - Vimeo thumbnail +.. vim: set tw=80: diff --git a/embed_video/templatetags/embed_video_tags.py b/embed_video/templatetags/embed_video_tags.py index 2f0cc6d..7c45ef9 100644 --- a/embed_video/templatetags/embed_video_tags.py +++ b/embed_video/templatetags/embed_video_tags.py @@ -1,5 +1,5 @@ from django.template import Library, Node, TemplateSyntaxError -from django.utils.safestring import mark_safe +from django.utils.safestring import mark_safe, SafeText from ..base import detect_backend, SoundCloundBackend @@ -40,6 +40,9 @@ class VideoNode(Node): @register.filter(is_safe=True) def embed(backend, _size='small'): + if isinstance(backend, SafeText): + backend = detect_backend(backend) + sizes = { 'tiny': (420, 315), 'small': (480, 360), diff --git a/embed_video/tests/tests.py b/embed_video/tests/tests.py index 3088a05..27841c2 100644 --- a/embed_video/tests/tests.py +++ b/embed_video/tests/tests.py @@ -53,6 +53,15 @@ class EmbedVideoTestCase(TestCase): self.assertEqual(template.render(self._grc()).strip(), rendered) + def test_direct_embed(self): + template = Template(""" + {% load embed_video_tags %} + {{ 'http://www.youtube.com/watch?v=jsrRJyHBvzw'|embed:'large' }} + """) + rendered = u'' + + self.assertEqual(template.render(self._grc()).strip(), rendered) + def test_embed_user_size(self): template = Template(""" {% load embed_video_tags %}