def post(request, slug): http_host = request.META['HTTP_HOST'] if http_host == 'bearblog.dev' or http_host == 'localhost:8000': return redirect('/') elif 'bearblog.dev' in http_host or 'localhost:8000' in http_host: extracted = tldextract.extract(http_host) if is_protected(extracted.subdomain): return redirect(get_base_root(extracted)) blog = get_object_or_404(Blog, subdomain=extracted.subdomain) root = get_root(extracted, blog.subdomain) else: blog = get_object_or_404(Blog, domain=http_host) root = http_host if request.GET.get('preview'): all_posts = blog.post_set.all().order_by('-published_date') else: all_posts = blog.post_set.filter( publish=True).order_by('-published_date') post = get_post(all_posts, slug) content = markdown(post.content, extensions=['fenced_code']) return render( request, 'post.html', { 'blog': blog, 'content': content, 'post': post, 'nav': get_nav(all_posts), 'root': root, 'meta_description': unmark(post.content)[:160] })
def post(request, slug): http_host = request.META['HTTP_HOST'] if http_host == 'bearblog.dev' or http_host == 'localhost:8000': return redirect('/') elif 'bearblog.dev' in http_host or 'localhost:8000' in http_host: extracted = tldextract.extract(http_host) if is_protected(extracted.subdomain): return redirect(get_base_root(extracted)) blog = get_object_or_404(Blog, subdomain=extracted.subdomain) root = get_root(extracted, blog.subdomain) else: blog = get_object_or_404(Blog, domain=http_host) root = http_host ip_address = client_ip(request) if request.method == "POST": upvoted_pose = get_object_or_404(Post, blog=blog, slug=slug) posts_upvote_dupe = upvoted_pose.upvote_set.filter( ip_address=ip_address) if len(posts_upvote_dupe) == 0: upvote = Upvote(post=upvoted_pose, ip_address=ip_address) upvote.save() if request.GET.get('preview'): all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).all().order_by('-published_date') else: all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).filter( publish=True).order_by('-published_date') post = get_post(all_posts, slug) upvoted = False for upvote in post.upvote_set.all(): if upvote.ip_address == ip_address: upvoted = True content = markdown(post.content, extensions=['fenced_code']) return render( request, 'post.html', { 'blog': blog, 'content': content, 'post': post, 'nav': get_nav(all_posts), 'root': root, 'meta_description': unmark(post.content)[:160], 'upvoted': upvoted })
def post(request, slug): address_info = resolve_address(request) if not address_info: return redirect('/') blog = address_info['blog'] ip_address = client_ip(request) if request.method == "POST": upvoted_pose = get_object_or_404(Post, blog=blog, slug=slug) posts_upvote_dupe = upvoted_pose.upvote_set.filter( ip_address=ip_address) if len(posts_upvote_dupe) == 0: upvote = Upvote(post=upvoted_pose, ip_address=ip_address) upvote.save() if request.GET.get('preview'): all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).all().order_by('-published_date') else: all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).filter( publish=True).order_by('-published_date') post = get_post(all_posts, slug) upvoted = False for upvote in post.upvote_set.all(): if upvote.ip_address == ip_address: upvoted = True content = mistune.html(post.content) return render( request, 'post.html', { 'blog': blog, 'content': content, 'post': post, 'nav': get_nav(all_posts), 'root': address_info['root'], 'meta_description': unmark(post.content)[:160], 'upvoted': upvoted })
def post(request, slug): blog = resolve_address(request) if not blog: return not_found(request) ip_address = client_ip(request) if request.method == "POST": if request.POST.get("pk", ""): # Upvoting pk = sanitise_int(request.POST.get("pk", ""), 7) post = get_object_or_404(Post, pk=pk) posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address) if len(posts_upvote_dupe) == 0: upvote = Upvote(post=post, ip_address=ip_address) upvote.save() if request.GET.get('preview'): all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).all().order_by('-published_date') else: all_posts = blog.post_set.annotate( upvote_count=Count('upvote')).filter( publish=True).order_by('-published_date') post = get_post(all_posts, slug) upvoted = False for upvote in post.upvote_set.all(): if upvote.ip_address == ip_address: upvoted = True meta_description = post.meta_description or unmark(post.content)[:160] return render( request, 'post.html', { 'blog': blog, 'content': post.content, 'post': post, 'root': blog.useful_domain(), 'meta_description': meta_description, 'meta_image': post.meta_image or blog.meta_image, 'upvoted': upvoted })