Exemplo n.º 1
0
 def post(self, slug):
     key = self.request.get("key", None)
     entry = Entry.get(key)
     
     entry.title     = self.request.get('title')
     entry.slug      = self.request.get("slug")
     # entry.published = datetime.datetime.strptime( self.request.get("published"), "%Y-%m-%d %H:%M:%S" )
     entry.excerpt   = self.request.get("excerpt")
     entry.body      = self.request.get("body")
     entry.draft     = bool(self.request.get("draft"))
     
     entry.put()
     entry.index()
     entry.indexed_title_changed()
     self.redirect("/entry/" + entry.slug)
Exemplo n.º 2
0
    def action_getcomments(self):
        key = self.param('key')
        entry = Entry.get(key)
        comments = Comment.all().filter('entry =', key)

        commentuser = self.request.cookies.get('comment_user', '')
        if commentuser:
            commentuser = commentuser.split('#@#')
        else:
            commentuser = ['', '', '']

        vals = {
            'entry': entry,
            'comments': comments,
            'user_name': commentuser[0],
            'user_email': commentuser[1],
            'user_url': commentuser[2],
            'checknum1': random.randint(1, 10),
            'checknum2': random.randint(1, 10),
            }
        html = self.get_render('comments', vals)

        self.write(simplejson.dumps(html.decode('utf8')))
Exemplo n.º 3
0
    def post(self, slug=None):
        useajax = self.param('useajax') == '1'

        name = self.param('author')
        email = self.param('email')
        url = self.param('url')

        key = self.param('key')
        content = self.param('comment')
        checknum = self.param('checknum')
        checkret = self.param('checkret')

        if not self.is_login:
            if not self.request.cookies.get('comment_user', ''):

                try:
                    import app.gbtools as gb
                    if eval(checknum) != int(gb.stringQ2B(checkret)):
                        if useajax:
                            self.write(simplejson.dumps((False, -102, _('Your check code is invalid .'))))
                        else:
                            self.error(-102, _('Your check code is invalid .'))
                        return
                except:
                    if useajax:
                        self.write(simplejson.dumps((False, -102, _('Your check code is invalid .'))))
                    else:
                        self.error(-102, _('Your check code is invalid .'))
                    return

        content = content.replace('\n', '<br>')
        content = myfilter.do_filter(content)
        name = cgi.escape(name)[:20]
        url = cgi.escape(url)[:100]

        if not (name and email and content):
            if useajax:
                self.write(simplejson.dumps((False, -101, _('Please input name, email and comment .'))))
            else:
                self.error(-101, _('Please input name, email and comment .'))
        else:
            comment = Comment(author=name, content=content, email=email, entry=Entry.get(key))
            if url:
                try:
                    comment.weburl = url
                except:
                    comment.weburl = 'http://' + url

            info_str = '#@#'.join([urlencode(name), urlencode(email), urlencode(url)])

            logging.info('info:' + info_str)

            cookiestr = 'comment_user=%s;expires=%s;domain=%s;path=/' % (info_str, (datetime.now()
                     + timedelta(days=100)).strftime('%a, %d-%b-%Y %H:%M:%S GMT'), '')
            comment.save()
            memcache.delete('/' + comment.entry.link)

            self.response.headers.add_header('Set-Cookie', cookiestr)
            if useajax:
                comment_c = self.get_render('comment', {'comment': comment})
                self.write(simplejson.dumps((True, comment_c.decode('utf8'))))
            else:

                self.redirect(self.referer)