예제 #1
0
 def GET(self, id, name):
     check_installed()
     post = blog.get_post(int(id))
     idname = blogutils.title_to_url(post.title)
     if idname != name:
         web.seeother("/blog/"+id+"/"+idname)
     render = web.template.render('templates/common', globals=t_globals)
     filedir = 'static/images/uploads/'+id+"/" # change this to the directory you want to store the file in.
     heroURL = ''
     if os.path.exists(filedir):
         for file in os.listdir(filedir):
             if (file.endswith(".jpg") or file.endswith(".jpeg") or file.endswith(".gif") or file.endswith(".png")) and not "thumb" in file:
                 heroURL = "/"+filedir+file
                 break
     if post.published == 0:
         if user.logged(session):
             if session.privilege == 2:
                 if heroURL == '':
                     return render.blogpostsimple(gen_head(), gen_offleft(), post)
                 else:
                     return render.blogpost(gen_head(), gen_offleft(), post, heroURL)
     else:
         if heroURL == '':
             return render.blogpostsimple(gen_head(), gen_offleft(), post)
         else:
             return render.blogpost(gen_head(), gen_offleft(), post, heroURL)
예제 #2
0
 def GET(self, id, name):
     check_installed()
     post = blog.get_post(int(id))
     idname = blogutils.title_to_url(post.title)
     if idname != name:
         web.seeother("/blog/" + id + "/" + idname)
     render = web.template.render('templates/common', globals=t_globals)
     filedir = 'static/images/uploads/' + id + "/"  # change this to the directory you want to store the file in.
     heroURL = ''
     if os.path.exists(filedir):
         for file in os.listdir(filedir):
             if (file.endswith(".jpg") or file.endswith(".jpeg")
                     or file.endswith(".gif")
                     or file.endswith(".png")) and not "thumb" in file:
                 heroURL = "/" + filedir + file
                 break
     if post.published == 0:
         if user.logged(session):
             if session.privilege == 2:
                 if heroURL == '':
                     return render.blogpostsimple(gen_head(), gen_offleft(),
                                                  post)
                 else:
                     return render.blogpost(gen_head(), gen_offleft(), post,
                                            heroURL)
     else:
         if heroURL == '':
             return render.blogpostsimple(gen_head(), gen_offleft(), post)
         else:
             return render.blogpost(gen_head(), gen_offleft(), post,
                                    heroURL)
예제 #3
0
 def get_post(self, post_id):
     """ returns post object by post_id or redirects to newpost form"""
     # if user is not the author, then the statement below will return None
     post = blog.get_post(self.user.username, post_id)
     if not post:
         return self.redirect("/blog/newpost", abort=True)
     else:
         return post
예제 #4
0
 def GET(self, id):
     check_installed()
     post = blog.get_post(int(id))
     if post is None:
         post_id = blog.new_post("", 0)
         raise web.seeother("/blog/edit/"+str(post_id))
     render = user.create_render(session)
     return render.edit(gen_head(), gen_offleft(), post, post.markdown)
예제 #5
0
 def GET(self, id):
     check_installed()
     post = blog.get_post(int(id))
     if post is None:
         post_id = blog.new_post("", 0)
         raise web.seeother("/blog/edit/" + str(post_id))
     render = user.create_render(session)
     return render.edit(gen_head(), gen_offleft(), post, post.markdown)
예제 #6
0
 def POST(self, id):
     title, body, published = web.input().title, web.input().body, int(web.input().published)
     if user.logged(session):
         if session.privilege == 2:
             post = blog.get_post(int(id))
             if re.sub('<[^<]+?>', '', title) == "" or body == "" or title is None or body is None:
                 Delete.POST(self, int(id))
             else:
                 update_blog_post_in_correct_format(id, title, body, published)
     if published == 1:
         raise web.seeother('/blog')
     else:
         raise web.seeother('/americano')
예제 #7
0
 def get(self, author_name, post_id):
     """ Get request method handler. Sets like/dislike """
     post = blog.get_post(author_name, post_id)
     if not post:
         self.error(404)
         return
     if self.user.username != author_name:
         # switch like/Dislike
         likes.Likes.set(post, self.user.username)
     referer = self.request.referer
     if referer:
         self.redirect(referer)
     else:
         self.redirect("/blog/%s/%s" % (author_name, str(post_id)))
예제 #8
0
 def initialize(self, *args, **kwargs):
     """ retrieve post instance and it's user's like status
     into render parameters dict"""
     handler.Handler.initialize(self, *args, **kwargs)
     kwargs = self.request.route_kwargs
     self.render_params = {}
     post = blog.get_post(kwargs['author_name'], kwargs['post_id'])
     if not post:
         self.error(404)
         return
     else:
         self.render_params['post'] = post
     if self.user:
         if likes.Likes.by_username(post, self.user.username):
             self.render_params['like_st'] = 'Dislike'
         else:
             self.render_params['like_st'] = 'Like'
예제 #9
0
 def POST(self, id):
     title, body, published = web.input().title, web.input().body, int(
         web.input().published)
     if user.logged(session):
         if session.privilege == 2:
             post = blog.get_post(int(id))
             if re.sub(
                     '<[^<]+?>', '', title
             ) == "" or body == "" or title is None or body is None:
                 Delete.POST(self, int(id))
             else:
                 update_blog_post_in_correct_format(id, title, body,
                                                    published)
     if published == 1:
         raise web.seeother('/blog')
     else:
         raise web.seeother('/americano')
예제 #10
0
def show_post(year, month, day, title):
    date = datetime.date(year, month, day)
    return render_template('blog_post.html', post=blog.get_post(date, title))