コード例 #1
0
ファイル: handlers.py プロジェクト: a37912/gaeaib
  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")
コード例 #2
0
ファイル: ib.py プロジェクト: a37912/gaeaib
  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)