def post(self, board, thread): logging.info("post called") ip = self.request.remote_addr qkey = "ip-%s" % ip quota = memcache.get(qkey) or 0 quota += 1 memcache.set(qkey, quota, time=POST_INERVAL*quota) logging.info("ip: %s, quota: %d" % (ip, quota)) if quota >= POST_QUOTA: return redirect("http://winry.on.nimp.org" ) # validate post form form = PostForm(self.request.form) if not form.validate(): return redirect("/%s/" % board) # if ok, save logging.info("data valid %r" %( form.data,)) post, thread = save_post(self.request, form.data, board, thread) key = board + "%d" % post cookie = self.get_secure_cookie(key) cookie["win"] = key return redirect("/%s/%d" % (board, thread))
def post(self, board, thread, ajax=False): logging.info("post called") if not antiwipe.check(self.request.remote_addr): logging.warning("wipe redirect: %r" % self.request.remote_addr) return redirect("http://winry.on.nimp.org" ) # validate post form form = PostForm(self.request.form) if not form.validate(): return redirect("/%s/" % board) logging.info("data: %r" % form.data) logging.info("form: %r" % self.request.form) # if ok, save post, thread = save_post(self.request, form.data, board, thread) key = board + "%d" % post cookie = self.get_secure_cookie(key) cookie["win"] = key if ajax: return Response('{"post":%d }' % post) return redirect("/%s/%d/" % (board, thread))
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)