def post(self): paster = users.get_current_user() name = self.request.get('name').strip() or "Untitled" content = self.request.get('content').strip() private = self.request.get('private').strip() if name and content and bool(paster): u = Pasty(Name = name, Content = content, User = paster, Private = bool(private)) u.put() # Update Memcache # First update the recent posts if not bool(private): recent = memcache.get('recent') if recent: recent.insert(0, u) if len(recent) > 10: recent.pop() memcache.set('recent', recent) # Now update the post memcache memcache.set("pasty:%s" % (str(u.key().id())), u) self.redirect('/pasty/%s' % u.key().id()) else: self.redirect(users.create_login_url(self.request.uri))
def edit_pasty_post(self, id): paster = users.get_current_user() name = self.request.get('name').strip() or "Untitled" content = self.request.get('content').strip() if name and content: u = Pasty.get_by_id(int(id)) u2 = memcache.get("pasty:%s" % id) if u: if u.User == paster: u.Name = name u.Content = content u.put() if u2: u2.Name = name u2.Content = content memcache.set("pasty:"+id, u2) self.redirect('/pasty/%s' % id) else: self.error('403') else: self.error('404') else: self.redirect('/pasty/edit_pasty/'+id)
def edit_pasty_post(self, id): paster = users.get_current_user() name = self.request.get('name').strip() or "Untitled" content = self.request.get('content').strip() if name and content: u = Pasty.get_by_id(int(id)) if u: if u.User == paster: # if the title is changed # we need to rebild 'recent' if u.Name != name: memcache.delete('recent') u.Name = name u.Content = content u.put() memcache.set("pasty:"+id, u) self.redirect('/pasty/%s' % id) else: self.error('403') else: self.error('404') else: self.redirect('/pasty/edit_pasty/'+id)
def delete_pasty(self, id): u = Pasty.get_by_id(int(id)) if u: memcache.delete('pasty:'+ id) memcache.delete('recent') logging.debug("Deleting 'recent' from memcache.") memcache.delete('comments:'+ id) db.delete(u) self.redirect('/') else: self.error('404')
def edit_pasty(self, id): paster = users.get_current_user() u = memcache.get("pasty:%s" % id) if not u: u = Pasty.get_by_id(int(id)) if not u: self.error('404') if paster == u.User: self.render('edit_pasty.html', pasty=u) else: self.error('403')
def get(self, id): paster = users.get_current_user() u = memcache.get("pasty:%s" % id) if not u: u = Pasty.get_by_id(int(id)) if u == None: self.error(404); else: memcache.set("pasty:%s" % (str(u.key().id())), u) is_owner = (u.User == paster) u2 = memcache.get("comments:%s" % id) if u2 is None: u2 = db.GqlQuery("SELECT * FROM Comment WHERE PostId=:1 ORDER BY Created", id) u2 = u2.fetch(None) if not memcache.add("comments:" + id, u2): logging.error('Memcache set failed, while trying to add comments:' + id) self.render("view_pasty.html", pasty=u, is_owner=is_owner, logged_in=bool(paster), comments=reversed(u2), paster=paster)