from django.core.urlresolvers import reverse from django.shortcuts import get_object_or_404 from boards.models import Post from boards.views import thread, api from django import template register = template.Library() actions = [ { 'name': 'google', 'link': 'http://google.com/searchbyimage?image_url=%s', }, { 'name': 'iqdb', 'link': 'http://iqdb.org/?url=%s', }, ] @register.simple_tag(name='post_url') def post_url(*args, **kwargs): post_id = args[0] post = get_object_or_404(Post, id=post_id) if not post.is_opening(): link = reverse('thread', kwargs={ 'post_id': post.thread_new.get_opening_post().id}) + '#' + str( post_id) else: link = reverse('thread', kwargs={'post_id': post_id}) return link @register.simple_tag(name='image_actions') def image_actions(*args, **kwargs): image_link = args[0] if len(args) > 1: image_link = 'http://' + args[1] + image_link # TODO https? result = '' for action in actions: result += '[' + \ action['name'] + ']' return result @register.inclusion_tag('boards/post.html', name='post_view') def post_view(post, moderator=False): """ Get post """ return { 'post': post, 'moderator': moderator, } @register.inclusion_tag('boards/post.html', name='post_view_truncated') def post_view_truncated(post, need_open_link=False, moderator=False): """ Get post with truncated text. If the 'open' or 'reply' link is needed, pass the second parameter as True. """ return { 'post': post, 'truncated': True, 'need_open_link': need_open_link, 'moderator': moderator, }