Ejemplo n.º 1
0
    def __init__(self,title=None,body=None,date=None,category=None,posttags=None,id=None):

        Action.__init__(self)
        if id==None:
           
            self.title=title
            self.body=body
            self.date=date
            self.postcategory=category
            self.posttags=posttags
            
        elif title==None:
            self.obj =BlogPost.get_by_id(int(id))
            self.id = self.obj.key().id()
            self.post_tags_keys = self.obj.tags
            
        else:
            self.obj = BlogPost.get_by_id(int(id))
            self.id = self.obj.key().id()
            self.post_tags_keys = self.obj.tags
            self.title=title
            self.body=body
            self.date=date
            self.postcategory=category
            self.posttags=posttags
Ejemplo n.º 2
0
    def get(self, post_id):
        post = BlogPost.get_by_id(long(post_id))

        return {
            "section": "blog",
            "post": post,
        }
Ejemplo n.º 3
0
    def post(self, blog_id):
        user = self.validate_user()
        # redirect to login if cookie wrong
        if not user:
            return self.redirect("/blog/login")

        # retrieve blog post from db
        blog = BlogPost.get_by_id(int(blog_id))

        # delete and redirect to /blog
        if blog:
            # check if blog belongs to user
            if blog.user.username != user.username:
                return self.redirect("/blog/login")

            subject = blog.subject
            # delete associated comments
            comments = db.Query(Comment).filter('blog =', blog)
            db.delete(comments)
            # delete blog itself
            blog.delete()
            # render delete_success page
            self.render("delete_success.html", subject=subject, user=user)
        else:
            self.error_404("The requested blog URL was not found.")
Ejemplo n.º 4
0
    def post(self, post_id):
        if not self.user:
            return self.redirect('/login')

        comment = self.request.get("content")
        blog_post = BlogPost.get_by_id(int(post_id))
        uid = self.get_user_id()

        if blog_post is not None:
            if not comment:
                error = "Error: Please enter a valid comment"
                self.redirect("/blog/" + post_id + "?error=" + error)

            elif self.request.get("new-comment"):
                self.add_comment(post_id, uid, comment)

            elif self.request.get("edit-comment"):
                self.edit_comment(post_id, comment,
                                  self.request.get("comment-key"))

            elif self.request.get("edit-post"):
                self.edit_post(post_id, blog_post, uid, comment,
                               self.request.get("subject"))

        else:
            self.redirect('/blog')
Ejemplo n.º 5
0
    def get(self, post_id):
        if not self.user:
            return self.redirect('/login')

        comments = Comment.by_post(post_id)
        commenting = self.request.get("commenting")
        error = self.request.get("error")
        uid = self.get_user_id()
        blog_post = BlogPost.get_by_id(int(post_id))
        blog_post.like = 0
        like = Likes.get_like(post_id, uid)

        if like:
            blog_post.like = 1

        if blog_post:
            if commenting:
                self.render("permalink.html",
                            post=blog_post,
                            commenting=True,
                            comments=comments,
                            error=error)
            else:
                self.render("permalink.html",
                            post=blog_post,
                            comments=comments,
                            error=error)
        else:
            self.redirect('/blog')
Ejemplo n.º 6
0
    def post(self, blog_id):
        subject = self.request.get("subject")
        content = self.request.get("content")

        # validate subject and content present
        if not (subject and content):
            error = "Please enter both subject and content."
            self.render("edit_page.html", error=error,
                        subject=subject, content=content)
        else:
            user = self.validate_user()
            # redirect to login if cookie wrong
            if not user:
                return self.redirect("/blog/login")

            # retrieve blog post from db and edit fields
            blog = BlogPost.get_by_id(int(blog_id))
            if blog:
                # check if blog belongs to user
                if blog.user.username != user.username:
                    return self.redirect("/blog/login")

                blog.subject = subject
                blog.content = content
                blog.put()
                self.redirect('/blog/' + blog_id)
            # 404 error if blog not found
            else:
                self.error_404("The requested blog URL was not found.")
Ejemplo n.º 7
0
 def test_handle_feed_allows_bridgy_publish_links(self):
     item = {
         'permalinkUrl': 'A',
         'content': 'a https://brid.gy/publish/facebook b'
     }
     superfeedr.handle_feed(json.dumps({'items': [item]}), self.source)
     self.assert_equals(['https://brid.gy/publish/facebook'],
                        BlogPost.get_by_id('A').unsent)
Ejemplo n.º 8
0
  def test_handle_feed_allows_bridgy_publish_links(self):
    item = {'permalinkUrl': 'A', 'content': 'a https://brid.gy/publish/twitter b'}
    self.expect_task('propagate-blogpost', key=BlogPost(id='A'))
    self.mox.ReplayAll()

    superfeedr.handle_feed({'items': [item]}, self.source)
    self.assert_equals(['https://brid.gy/publish/twitter'],
                       BlogPost.get_by_id('A').unsent)
Ejemplo n.º 9
0
 def get(self,blog,id):
     post = BlogPost.get_by_id(int(id))
     templ_val = {
         'post': post,
         'active_blogs':True,
         'comments':post.comments.order('date')
     }
     self.render_to_response('post.html',templ_val)
Ejemplo n.º 10
0
 def post(self, blog_id):
     blog = BlogPost.get_by_id(int(blog_id))
     title = self.request.get("title")
     slug = self.request.get("slug")
     text = self.request.get("text")
     if title and slug and text:
         blog = BlogPost.update(blog_post=blog, title=title, slug=slug, text=text)
     return self.redirect_to("blog-details", slug=blog.slug)
Ejemplo n.º 11
0
    def get(self, post_id, extra=""):
        post = BlogPost.get_by_id(long(post_id))
        form = BlogPostForm(obj = post)

        return {
            "admin_section": "admin-blog-posts",
            "form": form,
            "success": extra=="saved",
            "upload_url": blobstore.create_upload_url(webapp2.uri_for('image-upload')),
            "post": post,
        }
Ejemplo n.º 12
0
 def get(self, blog_id):
     # retrieve blog from db
     blog = BlogPost.get_by_id(int(blog_id))
     if blog:
         user = self.validate_user()
         blog_entries = [blog]  # user array to use same template
         self.render("blog_entries.html",
                     blog_entries=blog_entries, user=user,
                     permalink=True)
     # send 404 if not found
     else:
         self.error_404("The requested blog URL was not found.")
Ejemplo n.º 13
0
    def get(self, post_id):
        if not self.user:
            return self.redirect('/login')

        blog_post = BlogPost.get_by_id(int(post_id))
        if blog_post is not None:
            if blog_post.author == self.get_user_id():
                blog_post.delete()
                self.redirect("/blog")
                return

        error = "Error: You are not allowed to delete this post!"
        self.redirect("/blog/" + post_id + "?error=" + error)
Ejemplo n.º 14
0
def postview(request, session):
    uri = request["uri"].split("/")
    post_id = int(uri[-1])
    try:
        post = BlogPost.get_by_id(post_id, session)
        title = post.title
        text = post.text
    except Exception as e:
        print e.message
        raise Exception("404 Not Found")
    return render_html("post.html", context={
        "title": title,
        "text": text
    })
Ejemplo n.º 15
0
 def post(self):
     post = BlogPost.get_by_id(int(self.request.get('postid')))
     c = Comment(
         body = self.request.get('body'),
         post = post,
         author_name = self.getCurrentUserName()
     )
     c.put()
     #post.comments_count += 1
     post.put()
     templ_vals = {
         'comment': c
     }
     self.render_to_response('comment.html',templ_vals)
Ejemplo n.º 16
0
    def post(self, blog_id):

        b = BlogPost.get_by_id(int(blog_id))
        b.subject = self.request.get("subject")
        b.blog_content = self.request.get("blog_content").replace(
            '\n', '<br/>')

        if b.subject and b.blog_content:
            b.created = datetime.datetime.now()
            b.put()
            self.redirect('/')
        else:
            error = "subject and content, please!"
            self.render("edit_post.html", error=error, b=b)
Ejemplo n.º 17
0
    def get(self, blog_id):
        # check if user is logged in
        user = self.validate_user()
        if not user:
            return self.redirect("/blog/login")

        # retrieve blog
        blog = BlogPost.get_by_id(int(blog_id))
        if blog:
            blog_entries = [blog]
            self.render("create_comment.html", user=user, permalink=True,
                        blog_entries=blog_entries)
        # send 404 error if post not found
        else:
            self.error_404("The requested blog URL was not found.")
Ejemplo n.º 18
0
    def post(self, post_id, extra=""):
        form = BlogPostForm(self.request.POST)
        success = False
        post = BlogPost.get_by_id(long(post_id))

        if form.validate():
            form.populate_obj(post)
            post.save()
            success = True

        return {
            "admin_section": "admin-blog-posts",
            "form": form,
            "success": success,
            "post": post,
        }
Ejemplo n.º 19
0
def get_single_post():
    loaded_message = request.get_json()
    data_id = int(loaded_message["id"])
    qry1 = BlogPost.get_by_id(data_id, parent=None)
    body = qry1.body
    author = qry1.author
    title = qry1.title
    the_time = qry1.time
    id = qry1.key.id()
    dict_to_append = {
        "body": body,
        "author": author,
        "title": title,
        "time": the_time,
        "id": id
    }
    return jsonify(data=dict_to_append)
Ejemplo n.º 20
0
    def get(self, blog_id):
        # check if user is logged in
        user = self.validate_user()
        if not user:
            return self.redirect("/blog/login")

        # retrieve blog and show delete page
        blog = BlogPost.get_by_id(int(blog_id))
        if blog:
            # check if blog belongs to user
            if blog.user.username != user.username:
                return self.redirect("/blog/login")

            self.render("delete_page.html", user=user, blog=blog)
        # send 404 error if post not found
        else:
            self.error_404("The requested blog URL was not found.")
Ejemplo n.º 21
0
    def get(self, blog_id):
        # check if user is logged in
        user = self.validate_user()
        if not user:
            return self.redirect("/blog/login")

        # retrieve blog and show edit page by pre-populating fields
        blog = BlogPost.get_by_id(int(blog_id))
        if blog:
            # check if blog belongs to user
            if blog.user.username != user.username:
                return self.redirect("/blog/login")

            self.render("edit_page.html", user=user,
                        subject=blog.subject, content=blog.content)
        # redirect to /blog if post not found
        else:
            self.error_404("The requested blog URL was not found.")
Ejemplo n.º 22
0
    def post(self, blog_id):
        user = self.validate_user()
        # redirect to login if cookie wrong
        if not user:
            return self.redirect("/blog/login")

        # retrieve blog post from db
        blog = BlogPost.get_by_id(int(blog_id))

        if blog:
            content = self.request.get("comment")
            # create comment and insert into db
            comment = Comment(user=user, blog=blog, content=content)
            comment.put()
            # time.sleep(0.2)  # hack for localhost consistency
            self.redirect('/blog/' + blog_id)
        else:
            self.error_404("The requested blog URL was not found.")
Ejemplo n.º 23
0
def handleApost(id):
    posts=memcache.get(KEY)
    tags=memcache.get(TAG)
    categories=memcache.get(CATEGORY)
        
    if not posts:
      
        posts = BlogPost.all().order("-timestamp").fetch(20)
        memcache.add(KEY,posts)

    if not tags:
        tags = Tag.all().fetch(20)
        memcache.add(TAG,tags)
    if not categories:
        categories= Category.all().fetch(20)
        memcache.add(CATEGORY,categories)
        
    obj=BlogPost.get_by_id(int(id))
    tagkeys=obj.tags
    
    if request.method=="GET":
        apost=APost(id=id)
        data=apost.retrieve()
        return jsonify(msg="OK",posts=data)
    elif users.is_current_user_admin() and request.method=="DELETE":
        apost=APost(id=id)
        apost.delete()
        return jsonify(msg="OK")
        
    elif  users.is_current_user_admin() and request.method=="PUT":
        title=request.json['title']
        body=request.json['body']
        date=request.json['date']
        category=request.json['category']
        posttags=request.json['tags']
        apost=APost(title,body,date,category,posttags,id)
        (data,returnedTags)=apost.update()
       
            
       
        return jsonify(msg="OK",tags=returnedTags,posts=data)
Ejemplo n.º 24
0
 def test_handle_feed_allows_bridgy_publish_links(self):
     item = {"permalinkUrl": "A", "content": "a https://brid.gy/publish/facebook b"}
     superfeedr.handle_feed(json.dumps({"items": [item]}), self.source)
     self.assert_equals(["https://brid.gy/publish/facebook"], BlogPost.get_by_id("A").unsent)
Ejemplo n.º 25
0
 def test_handle_feed_allows_bridgy_publish_links(self):
   item = {'permalinkUrl': 'A', 'content': 'a https://brid.gy/publish/facebook b'}
   superfeedr.handle_feed(json.dumps({'items': [item]}), self.source)
   self.assert_equals(['https://brid.gy/publish/facebook'],
                      BlogPost.get_by_id('A').unsent)
Ejemplo n.º 26
0
 def get(self, blog_id):
     blog = BlogPost.get_by_id(int(blog_id))
     return self.render_template("blog_post_edit.html", params={"blog": blog})
Ejemplo n.º 27
0
 def get(self, blog_id):
     b = BlogPost.get_by_id(int(blog_id))
     self.render("edit_post.html", b=b)
Ejemplo n.º 28
0
 def get(self, blog_id):
     b = BlogPost.get_by_id(int(blog_id))
     b.likes += 1
     b.put()
     self.redirect('/')
Ejemplo n.º 29
0
 def get(self, blog_id):
     b = BlogPost.get_by_id(int(blog_id))
     b.delete()
     self.redirect('/')
Ejemplo n.º 30
0
 def get(self, blog_id):
     b = BlogPost.get_by_id(int(blog_id))
     self.render("blog_permalink.html", b=b)