Пример #1
0
  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))
Пример #2
0
  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))
Пример #3
0
  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)