def posts(request): address_info = resolve_address(request) if not address_info: return redirect('/') blog = address_info['blog'] query = request.GET.get('q', '') if query: try: tag = Tag.objects.get(name=query) all_posts = blog.post_set.filter(tags=tag, publish=True).order_by('-published_date') except Tag.DoesNotExist: all_posts = [] else: all_posts = blog.post_set.filter(publish=True).order_by('-published_date') tags = [] for post in all_posts: tags += post.tags.most_common()[:10] tags = list(dict.fromkeys(tags)) return render( request, 'posts.html', { 'blog': blog, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': address_info['root'], 'meta_description': unmark(blog.content)[:160], 'tags': tags, 'query': query, } )
def posts(request): address_info = resolve_address(request) if not address_info: return redirect('/') blog = address_info['blog'] query = request.GET.get('q', '') if query: all_posts = blog.post_set.filter( Q(publish=True) & Q(content__icontains=query)).order_by('-published_date') else: all_posts = blog.post_set.filter( publish=True).order_by('-published_date') if blog.hashtags: hashtags = json.loads(blog.hashtags) else: hashtags = [] return render( request, 'posts.html', { 'blog': blog, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': address_info['root'], 'meta_description': unmark(blog.content)[:160], 'hashtags': hashtags, 'query': query, })
def home(request): http_host = request.META['HTTP_HOST'] if http_host == 'bearblog.dev' or http_host == 'www.bearblog.dev' or http_host == 'localhost:8000': return render(request, 'landing.html') elif 'bearblog.dev' in http_host or 'localhost:8000' in http_host: extracted = tldextract.extract(http_host) blog = get_object_or_404(Blog, subdomain=extracted.subdomain) root = get_root(blog.subdomain) else: blog = get_object_or_404(Blog, domain=http_host) root = http_host all_posts = blog.post_set.filter(publish=True).order_by('-published_date') content = markdown(blog.content, extensions=['fenced_code']) return render( request, 'home.html', { 'blog': blog, 'content': content, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': root, 'meta_description': unmark(blog.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 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 subscribe(request): blog = resolve_address(request) if not blog: return not_found(request) subscribe_message = "" if request.method == "POST": if request.POST.get("email", "") and not request.POST.get("name", ""): email = request.POST.get("email", "") subscriber_dupe = Subscriber.objects.filter(blog=blog, email_address=email) if not subscriber_dupe: validate_subscriber_email(email, blog) subscribe_message = "Check your email to confirm your subscription." else: subscribe_message = "You are already subscribed." all_posts = blog.post_set.filter(publish=True).order_by('-published_date') return render( request, 'subscribe.html', { 'blog': blog, 'nav': get_nav(all_posts), 'root': blog.useful_domain(), 'subscribe_message': subscribe_message })
def posts(request): 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 all_posts = blog.post_set.filter(publish=True).order_by('-published_date') return render( request, 'posts.html', { 'blog': blog, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': root, 'meta_description': unmark(blog.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 home(request): blog = resolve_address(request) if not blog: return render(request, 'landing.html') all_posts = blog.post_set.filter(publish=True).order_by('-published_date') return render( request, 'home.html', { 'blog': blog, 'content': blog.content, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': blog.useful_domain(), })
def posts(request): address_info = resolve_address(request) if not address_info: return redirect('/') blog = address_info['blog'] all_posts = blog.post_set.filter(publish=True).order_by('-published_date') return render( request, 'posts.html', { 'blog': blog, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': address_info['root'], 'meta_description': unmark(blog.content)[:160] })
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 home(request): blog = resolve_address(request) if not blog: return render(request, 'landing.html') all_posts = blog.post_set.filter(publish=True).order_by('-published_date') meta_description = blog.meta_description or unmark(blog.content)[:160] return render( request, 'home.html', { 'blog': blog, 'content': blog.content, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': blog.useful_domain(), 'meta_description': meta_description })
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 = request.POST.get("pk", "") 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, 'nav': get_nav(all_posts), 'root': blog.useful_domain(), 'meta_description': meta_description, 'upvoted': upvoted })
def home(request): address_info = resolve_address(request) if not address_info: return render(request, 'landing.html') blog = address_info['blog'] all_posts = blog.post_set.filter(publish=True).order_by('-published_date') content = mistune.html(blog.content) return render( request, 'home.html', { 'blog': blog, 'content': content, 'posts': get_posts(all_posts), 'nav': get_nav(all_posts), 'root': address_info['root'], 'meta_description': unmark(blog.content)[:160] })
def posts(request): blog = resolve_address(request) if not blog: return not_found(request) query = request.GET.get('q', '') if query: try: tag = Tag.objects.get(name=query) all_posts = blog.post_set.filter( tags=tag, publish=True).order_by('-published_date') except Tag.DoesNotExist: all_posts = [] blog_posts = all_posts else: all_posts = blog.post_set.filter( publish=True).order_by('-published_date') blog_posts = get_posts(all_posts) tags = [] for post in all_posts: tags += post.tags.most_common()[:10] tags = list(dict.fromkeys(tags)) meta_description = blog.meta_description or unmark(blog.content)[:160] return render( request, 'posts.html', { 'blog': blog, 'posts': blog_posts, 'nav': get_nav(all_posts), 'root': blog.useful_domain(), 'meta_description': meta_description, 'tags': tags, 'query': query, })