[Web] handle SyncGroups as Clients
[mygpo.git] / mygpo / web / templatetags / facebook.py
blobd5fb4f885f438a1452bd3d7522970620b5927e45
1 import hashlib
3 from django import template
4 from django.utils.safestring import mark_safe
5 from django.utils.translation import ugettext as _
7 from mygpo.web.logo import get_logo_url
8 from mygpo.constants import PODCAST_LOGO_BIG_SIZE
9 from mygpo.web.templatetags.podcasts import create_podcast_logo
10 from mygpo.web.utils import get_episode_link_target, get_podcast_link_target
13 register = template.Library()
15 LIKE_BUTTON_STR = """<iframe class="fb_like" src="//www.facebook.com/plugins/like.php?href=%(url)s&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>"""
17 #FIXME: remove hardcoded URL
18 # we could convert the filter to a tag once the takes_context
19 # paramter to register.simple_tag() is included in a release, see
20 # http://stackoverflow.com/questions/2160261/access-request-in-django-custom-template-tags
21 # http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#shortcut-for-simple-tags
23 @register.simple_tag
24 def fb_like_episode(episode, podcast):
25 url = 'http://gpodder.net/%s' % get_episode_link_target(episode, podcast)
26 s = LIKE_BUTTON_STR % dict(url=url)
27 return mark_safe(s)
30 @register.filter
31 def fb_like_podcast(podcast):
32 url = 'http://gpodder.net%s' % get_podcast_link_target(podcast)
33 s = LIKE_BUTTON_STR % dict(url=url)
34 return mark_safe(s)
38 OPENGRAPH_STR = """
39 <meta property="og:title" content="%(title)s"/>
40 <meta property="og:type" content="%(type)s"/>
41 <meta property="og:image" content="%(image)s"/>
42 <meta property="og:url" content="%(url)s"/>
43 <meta property="og:site_name" content="%(site_name)s"/>
44 <meta property="og:admins" content="%(admins)s"/>
45 """
47 @register.simple_tag
48 def opengraph_episode(episode, podcast):
49 s = OPENGRAPH_STR % dict(
50 title = episode.title,
51 type = 'episode',
52 image = 'http://gpodder.net%s' % get_logo_url(podcast, PODCAST_LOGO_BIG_SIZE),
53 url = 'http://gpodder.net%s' % get_episode_link_target(episode, podcast),
54 site_name = 'gpodder.net',
55 admins = '0'
57 return s
59 @register.filter
60 def opengraph_podcast(podcast):
61 s = OPENGRAPH_STR % dict(
62 title = podcast.title,
63 type = 'episode',
64 image = 'http://gpodder.net%s' % get_logo_url(podcast, PODCAST_LOGO_BIG_SIZE),
65 url = 'http://gpodder.net%s' % get_podcast_link_target(podcast),
66 site_name = 'gpodder.net',
67 admins = '0'
69 return mark_safe(s)