Exemplo n.º 1
0
def post_edit(postid):
    """ Enables post owner to edit post """

    if request.method == "POST":

        # Checks for empty text field
        if not request.form.get("content"):
            flash("Post cannot be empty.", "danger")
            return redirect("/post/" + postid + "/edit")

        # Insert comment into database
        update_post(conn, postid, request.form.get("content"))

        # Redirect to post page
        flash("Post updated!", "success")
        return redirect("/post/" + postid)

    else:

        # Get post
        post = get_post(conn, postid)

        # Check post ownership
        if session["user_id"] != post["author_id"]:
            flash("You don't have permission to do that.", "danger")
            return redirect("/post/" + postid)

        return render_template("post_edit.html", post=post)
Exemplo n.º 2
0
def display_post(request, year, month, day, slug):
    post = get_post(request, year, month, day, slug)

    storage_key = slugify(unicode(post.get_absolute_url()))
    form = CommentForm(storage_key, request=request, user=request.user)
    return render(request, "blog/post.haml", {"post": post,
                                              "form": form,
                                              'storage_key': storage_key})
Exemplo n.º 3
0
def post_delete(postid):
    """ Enables post owner to delete post """

    if request.method == "POST":

        # Check post ownership
        post = get_post(conn, postid)

        if session["user_id"] != post["author_id"]:
            flash("You don't have permission to do that.", "danger")
            return redirect("/post/" + post["id"])

        # Delete post from database
        delete_post(conn, postid)

        # Redirect to feed
        flash("Post deleted!", "success")
        return redirect(url_for('feed'))

    else:

        # Get post
        post= get_post(conn, postid)

        # Check post ownership
        if session["user_id"] != post["author_id"]:
            flash("You don't have permission to do that.", "danger")
            return redirect("/post/" + postid)

        content = {}
        content["id"] = post["id"]
        content["type"] = "Post"
        content["delete_url"] = "/post/" + postid + "/delete"
        content["cancel_url"] = "/post/" + postid

        return render_template("delete.html", content=content)
Exemplo n.º 4
0
def comment_form(request, year, month, day, slug):
    post = get_post(request, year, month, day, slug)
    storage_key = slugify(unicode(post.get_absolute_url()))
    if request.method == "POST":
        form = CommentForm(storage_key, request.POST, request=request, user=request.user)
        if form.is_valid():
            c = form.save(commit=False)
            c.ip_address = request.META["REMOTE_ADDR"]
            c.post = post
            if request.user.is_authenticated():
                c.user = request.user
                c.is_public = True
            c.save()

            subject = _('new comment for "%s"' % post.title)
            text_content = render_to_string(
                "blog/inc/comment_mail.txt", {"user": request.user, "comment": c, "post": post}, RequestContext(request)
            )

            html_content = render_to_string(
                "blog/inc/comment_mail.haml",
                {"user": request.user, "comment": c, "post": post},
                RequestContext(request),
            )

            msg = EmailMultiAlternatives(
                subject, text_content, settings.EMAIL_NO_REPLY, [SiteAdmin().get_admin().email]
            )

            msg.attach_alternative(html_content, "text/html")
            msg.send(fail_silently=True)

            if request.user.is_authenticated():
                return HttpResponse()
            else:
                return render(request, "blog/ajax/comment_ok.haml")
    else:
        form = CommentForm(storage_key, user=request.user, request=request)
    return render(
        request, "blog/ajax/comment_form.haml", {"url": post.get_form_url(), "form": form, "storage_key": storage_key}
    )
Exemplo n.º 5
0
def post_page(postid):
    """ Enables users to post comments to a specific post """

    if request.method == "POST":

        # Checks for empty text field
        if not request.form.get("content"):
            flash("Comment cannot be empty.", "danger")
            return redirect("/post/" + postid)

        # Insert comment into database
        create_comment(conn, session["user_id"], postid, request.form.get("content"))

        # Redirect to feed
        flash("Comment submitted!", "success")
        return redirect("/post/" + postid)

    else:

        # Get post and related comments
        post = get_post(conn, postid)
        comments = get_all_comments(conn, postid)

        return render_template("post.html", post=post, comments=comments)
Exemplo n.º 6
0
def comment_count(request, year, month, day, slug):
    post = get_post(request, year, month, day, slug)
    count = post.count_public_comments()
    return render(request, "blog/ajax/comment_count.haml", {"count": count})
Exemplo n.º 7
0
def show(id):
	post = get_post(id, session['username'])
	if post == False:
		return render_template('show.html', error='You can\'t view this entry.')
	else:
		return render_template('show.html', post=post)
Exemplo n.º 8
0
import json
import time
from helpers import get_post, send_to_slack

with open('subreddits.json', 'r') as f:
    subreddits = json.load(f)['subreddits']
    prev_posts = {}

    if (not prev_posts):
        for sub in subreddits:
            post = get_post(sub)
            prev_posts[sub] = post
            if (post):
                send_to_slack(post)

    while (1):
        for sub in subreddits:
            post = get_post(sub)
            if (post):
                if (post.url != prev_posts[sub].url):
                    print(f'New post on r/{sub}')
                    send_to_slack(post)
                    print(f'Sent post from r/{sub}')
        time.sleep(30)
Exemplo n.º 9
0
def show_post(post_name):
    post = helpers.get_post(post_name)
    return render_template("post.html", **post)