Example #1
0
def finish_handler(handler_id: int, event_queue_id: str,
                   contents: List[Dict[str,
                                       Any]], apply_markdown: bool) -> None:
    err_msg = "Got error finishing handler for queue %s" % (event_queue_id, )
    try:
        # We call async_request_restart here in case we are
        # being finished without any events (because another
        # get_events request has supplanted this request)
        handler = get_handler_by_id(handler_id)
        request = handler._request
        async_request_restart(request)
        if len(contents) != 1:
            request._log_data['extra'] = "[%s/1]" % (event_queue_id, )
        else:
            request._log_data['extra'] = "[%s/1/%s]" % (event_queue_id,
                                                        contents[0]["type"])

        handler.zulip_finish(dict(result='success',
                                  msg='',
                                  events=contents,
                                  queue_id=event_queue_id),
                             request,
                             apply_markdown=apply_markdown)
    except IOError as e:
        if str(e) != 'Stream is closed':
            logging.exception(err_msg)
    except AssertionError as e:
        if str(e) != 'Request closed':
            logging.exception(err_msg)
    except Exception:
        logging.exception(err_msg)
Example #2
0
def finish_handler(handler_id, event_queue_id, contents, apply_markdown):
    # type: (int, str, List[Dict[str, Any]], bool) -> None
    err_msg = "Got error finishing handler for queue %s" % (event_queue_id,)
    try:
        # We call async_request_restart here in case we are
        # being finished without any events (because another
        # get_events request has supplanted this request)
        handler = get_handler_by_id(handler_id)
        request = handler._request
        async_request_restart(request)
        if len(contents) != 1:
            request._log_data['extra'] = "[%s/1]" % (event_queue_id,)
        else:
            request._log_data['extra'] = "[%s/1/%s]" % (event_queue_id, contents[0]["type"])

        handler.zulip_finish(dict(result='success', msg='',
                                  events=contents,
                                  queue_id=event_queue_id),
                             request, apply_markdown=apply_markdown)
    except IOError as e:
        if str(e) != 'Stream is closed':
            logging.exception(err_msg)
    except AssertionError as e:
        if str(e) != 'Request closed':
            logging.exception(err_msg)
    except Exception:
        logging.exception(err_msg)
Example #3
0
    def add_event(self, event: Dict[str, Any]) -> None:
        if self.current_handler_id is not None:
            handler = get_handler_by_id(self.current_handler_id)
            async_request_restart(handler._request)

        self.event_queue.push(event)
        self.finish_current_handler()
Example #4
0
 def finish_current_handler(self):
     if self.current_handler is not None:
         err_msg = "Got error finishing handler for queue %s" % (self.event_queue.id,)
         try:
             # We call async_request_restart here in case we are
             # being finished without any events (because another
             # get_events request has supplanted this request)
             async_request_restart(self.current_handler._request)
             self.current_handler._request._log_data['extra'] = "[%s/1]" % (self.event_queue.id,)
             self.current_handler.zulip_finish(dict(result='success', msg='',
                                                    events=self.event_queue.contents(),
                                                    queue_id=self.event_queue.id),
                                               self.current_handler._request,
                                               apply_markdown=self.apply_markdown)
         except IOError as e:
             if e.message != 'Stream is closed':
                 logging.exception(err_msg)
         except AssertionError as e:
             if e.message != 'Request closed':
                 logging.exception(err_msg)
         except Exception:
             logging.exception(err_msg)
         finally:
             self.disconnect_handler()
             return True
     return False
Example #5
0
    def add_event(self, event):
        if self.current_handler_id is not None:
            handler = get_handler_by_id(self.current_handler_id)
            async_request_restart(handler._request)

        self.event_queue.push(event)
        self.finish_current_handler()
Example #6
0
def finish_handler(handler_id, event_queue_id, contents, apply_markdown):
    err_msg = "Got error finishing handler for queue %s" % (event_queue_id,)
    try:
        # We call async_request_restart here in case we are
        # being finished without any events (because another
        # get_events request has supplanted this request)
        handler = get_handler_by_id(handler_id)
        request = handler._request
        async_request_restart(request)
        request._log_data['extra'] = "[%s/1]" % (event_queue_id,)
        handler.zulip_finish(dict(result='success', msg='',
                                  events=contents,
                                  queue_id=event_queue_id),
                             request, apply_markdown=apply_markdown)
    except IOError as e:
        if e.message != 'Stream is closed':
            logging.exception(err_msg)
    except AssertionError as e:
        if e.message != 'Request closed':
            logging.exception(err_msg)
    except Exception:
        logging.exception(err_msg)
Example #7
0
def finish_handler(handler_id, event_queue_id, contents, apply_markdown):
    err_msg = "Got error finishing handler for queue %s" % (event_queue_id, )
    try:
        # We call async_request_restart here in case we are
        # being finished without any events (because another
        # get_events request has supplanted this request)
        handler = get_handler_by_id(handler_id)
        request = handler._request
        async_request_restart(request)
        request._log_data['extra'] = "[%s/1]" % (event_queue_id, )
        handler.zulip_finish(dict(result='success',
                                  msg='',
                                  events=contents,
                                  queue_id=event_queue_id),
                             request,
                             apply_markdown=apply_markdown)
    except IOError as e:
        if e.message != 'Stream is closed':
            logging.exception(err_msg)
    except AssertionError as e:
        if e.message != 'Request closed':
            logging.exception(err_msg)
    except Exception:
        logging.exception(err_msg)
Example #8
0
    def add_event(self, event):
        if self.current_handler is not None:
            async_request_restart(self.current_handler._request)

        self.event_queue.push(event)
        self.finish_current_handler()