def post(self): logging.info("chat form: %r" % self.request.form) frm = self.request.form.get('from') to = self.request.form.get("to") txt = self.request.form.get("body") jid,res = frm.split('/', 1) board = to.split('@')[0] if txt == 'SUB': sub(jid, board) return Response("ya") headline = txt[:txt.find('\n')] th = re.search('^>>(\d+)', headline) if th: th = thread_lookup(th.group(1), board) else: th = re.search('^>>/(\w+)/(\d+)', headline) if th: board,th = th.groups() th = thread_lookup(th, board) else: th = 'new' if not th: xmpp.send_message(frm, "WINRY WINRY WINRY", from_jid=to) return Response("ya") person = {} if not antiwipe.check(person, ip=jid, board=board, thread=th): xmpp.send_message(frm, "Posted. not really. Keep trying", from_jid=to) return Response("ya") logging.info('post: %r %r %s' % (board, th, txt)) #board = 'test' args = { "text": txt, "subject": "", "name": "Anonymous", } post, thread = save_post(self.request, args, board, th, jid) MSG = "Posted http://42ch.org/%s/%d/#p%d" %(board, thread, post) # query = 'board:%s thread:%d' %(board, thread) sub_id = '%s/%s/%d' % (jid, board, thread) matcher.subscribe(MatchPost, query, sub_id, topic='post') xmpp.send_message(frm, MSG, from_jid=to,) return Response("ya")
def post(self, board, thread): if not re.match('^\w+$', board): raise NotFound self.person() # move to MW? ip = obfuscate_ip(self.request.remote_addr) if not antiwipe.check(self.p, ip=ip, board=board, thread=thread): logging.warning("wipe redirect: %r" % self.request.remote_addr) return redirect_out() # enforce 733t m0d3 if self.NEWFAG and \ not self.p.get("postcount") > self.OLDFAG and \ (board,thread) not in self.NEWFAG and \ thread == 'new': board += u'~' logging.warning("why so newfag?") # validate post form form = PostForm(self.request.form) if not form.validate(): logging.info("form errors: %r" % form.errors) return self.response_error(form.errors, board) # if ok, save post, thread = save_post(self.request, form.data, board, thread, self.request.remote_addr) key = board + "%d" % post cookie = self.get_secure_cookie(key) cookie["win"] = key if not self.NEWFAG or (board,thread) not in self.NEWFAG: self.p["postcount"] += 1 return self.response_ok(board, thread, post)