Example #1
0
class ChatMessageStream(YuzukiResource):
    def __init__(self):
        YuzukiResource.__init__(self)
        self.request_pool = list()
        self.cmd_manager = ChatCmdManager()

    @need_anybody_permission
    def render_GET(self, request):
        self.request_pool.append(request)
        return NOT_DONE_YET

    @need_anybody_permission
    def render_POST(self, request):
        content = request.get_argument("content")
        if content.startswith("/"):
            chat, err = self.cmd_manager.process_cmd(request, content)
            if err:
                request.setResponseCode(BAD_REQUEST)
                return err
        else:
            chat = create_chat(request, content)
        request.dbsession.add(chat)
        request.dbsession.commit()
        for req in self.request_pool:
            try:
                req.write("message coming")
                req.finish()
            except:
                pass
        self.request_pool = []
        return "chat posted"
Example #2
0
 def __init__(self):
     YuzukiResource.__init__(self)
     self.request_pool = list()
     self.cmd_manager = ChatCmdManager()