def eomReceived(self): mail = message_from_string('\n'.join(self.lines)) event = Event(self.name, u'message') (realname, address) = email_utils.parseaddr(mail['from']) event.channel = event.sender['connection'] = event.sender[ 'id'] = unicode(address, 'utf-8', 'replace') event.sender['nick'] = realname != '' and unicode( realname, 'utf-8', 'replace') or event.channel event.public = False event.addressed = True event.subject = unicode(mail['subject'], 'utf-8', 'replace') event.headers = dict((i[0].lower(), unicode(i[1], 'utf-8', 'replace')) for i in mail.items()) message = mail.is_multipart() and mail.get_payload()[0].get_payload( ) or mail.get_payload() if len(message) > 0: stripsig = re.compile(r'^-- $.*', re.M + re.S) event.message = stripsig.sub('', unicode(message, 'utf-8', 'replace')).strip().replace( '\n', ' ') else: event.message = event.subject self.log.debug(u"Received message from %s: %s", event.sender['connection'], event.message) ibid.dispatcher.dispatch(event).addCallback( ibid.sources[self.name.lower()].respond) return defer.succeed(None)
def create_event(self, message, event_type=u'message'): event = Event(u'fakesource', event_type) event.message = { 'raw': message, 'deaddressed': message, 'clean': message, 'stripped': message, } return event
def remote_message(self, message): event = Event(self.name, u'message') event.sender['connection'] = event.sender['id'] = event.sender[ 'nick'] = event.channel = self.name event.addressed = True event.public = False event.message = unicode(message, 'utf-8', 'replace') self.log.debug(u'message("%s")' % event.message) return ibid.dispatcher.dispatch(event).addCallback(self.respond)
def create_event(self, message, event_type=u'message'): event = Event(u'fakesource', event_type) event.message = { 'raw': message, 'deaddressed': message, 'clean': message, 'stripped': message, } return event
def render_POST(self, request): event = Event(self.name, u'message') event.sender['nick'] = event.sender['id'] = event.sender['connection'] = event.channel = unicode(request.transport.getPeer().host) event.addressed = True event.public = False event.message = unicode(request.args['m'][0], 'utf-8', 'replace') self.log.debug(u"Received GET request from %s: %s", event.sender['connection'], event.message) ibid.dispatcher.dispatch(event).addCallback(self.respond, request) return server.NOT_DONE_YET
def render_POST(self, request): event = Event(self.name, u'message') event.sender['nick'] = event.sender['id'] = event.sender['connection'] = event.channel = unicode(request.transport.getPeer().host) event.addressed = True event.public = False event.message = unicode(request.args['m'][0], 'utf-8', 'replace') self.log.debug(u"Received GET request from %s: %s", event.sender['connection'], event.message) ibid.dispatcher.dispatch(event).addCallback(self.respond, request) return server.NOT_DONE_YET
def telnet_Query(self, line): event = Event(self.factory.name, u'message') event.message = unicode(line.strip(), 'utf-8', 'replace') event.sender['connection'] = self.user event.sender['id'] = self.user event.sender['nick'] = event.sender['connection'] event.channel = event.sender['connection'] event.addressed = True event.public = False self.factory.log.debug(u"Received message from %s: %s", self.user, event.message) ibid.dispatcher.dispatch(event).addCallback(self.respond) return 'Query'
def eomReceived(self): mail = message_from_string('\n'.join(self.lines)) event = Event(self.name, u'message') (realname, address) = email_utils.parseaddr(mail['from']) event.channel = event.sender['connection'] = event.sender['id'] = unicode(address, 'utf-8', 'replace') event.sender['nick'] = realname != '' and unicode(realname, 'utf-8', 'replace') or event.channel event.public = False event.addressed = True event.subject = unicode(mail['subject'], 'utf-8', 'replace') event.headers = dict((i[0].lower(), unicode(i[1], 'utf-8', 'replace')) for i in mail.items()) message = mail.is_multipart() and mail.get_payload()[0].get_payload() or mail.get_payload() if len(message) > 0: stripsig = re.compile(r'^-- $.*', re.M+re.S) event.message = stripsig.sub('', unicode(message, 'utf-8', 'replace')).strip().replace('\n', ' ') else: event.message = event.subject self.log.debug(u"Received message from %s: %s", event.sender['connection'], event.message) ibid.dispatcher.dispatch(event).addCallback(ibid.sources[self.name.lower()].respond) return defer.succeed(None)
def make_event(self, message=None, type=u"message"): event = Event(self.source, type) event.sender["id"] = event.sender["connection"] = event.sender["nick"] = self.username event.identity = self.identity.id event.account = None event.addressed = not self.public event.public = self.public event.channel = u"testchan" if message is not None: event.message = unicode(message) return event
def make_event(self, message=None, type=u'message'): event = Event(self.source, type) event.sender['id'] = event.sender['connection'] = \ event.sender['nick'] = self.username event.identity = self.identity.id event.account = None event.addressed = not self.public event.public = self.public event.channel = u'testchan' if message is not None: event.message = unicode(message) return event
def make_event(self, message=None, type=u'message'): event = Event(self.source, type) event.sender['id'] = event.sender['connection'] = \ event.sender['nick'] = self.username event.identity = self.identity.id event.account = None event.addressed = not self.public event.public = self.public event.channel = u'testchan' if message is not None: event.message = unicode(message) return event
def onMessage(self, message): self.parent.log.debug(u"Received %s message from %s: %s", message['type'], message['from'], message.body) if message.x and message.x.defaultUri == 'jabber:x:delay': self.parent.log.debug(u"Ignoring delayed message") return if self.parent.accept_domains: if message['from'].split('/')[0].split('@')[1] not in self.parent.accept_domains: self.parent.log.info(u"Ignoring message because sender is not in accept_domains") return if message.body is None: self.parent.log.info(u'Ignoring empty message') return event = Event(self.parent.name, u'message') event.message = unicode(message.body) event.sender['connection'] = message['from'] if message['type'] == 'groupchat': if message['from'] in self.room_users: event.sender['connection'] = self.room_users[message['from']] event.sender['id'] = event.sender['connection'].split('/')[0] else: event.sender['id'] = message['from'] if event.sender['id'] == self.parent.nick: return if '/' in message['from']: event.sender['nick'] = message['from'].split('/')[1] else: event.sender['nick'] = message['from'] event.channel = message['from'].split('/')[0] event.public = True else: event.sender['id'] = event.sender['connection'].split('/')[0] event.sender['nick'] = event.sender['connection'].split('@')[0] event.channel = event.sender['connection'] event.public = False event.addressed = True ibid.dispatcher.dispatch(event).addCallback(self.respond)
def log_handler(self, event): self.log_event(event) for response in event.responses: if 'reply' in response and isinstance(response['reply'], basestring): type = 'message' if response.get('action', False): type = 'action' elif response.get('notice', False): type = 'notice' e = Event(response['source'], type) e.source = response['source'] e.channel = response['target'] e.time = datetime.utcnow() e.sender = { 'id': ibid.config['botname'], 'connection': ibid.config['botname'], 'nick': ibid.config['botname'], } e.message = response['reply'] self.log_event(e)
def log_handler(self, event): self.log_event(event) for response in event.responses: if 'reply' in response and isinstance(response['reply'], basestring): type = 'message' if response.get('action', False): type = 'action' elif response.get('notice', False): type = 'notice' e = Event(response['source'], type) e.source = response['source'] e.channel = response['target'] e.time = datetime.utcnow() e.sender = { 'id': ibid.config['botname'], 'connection': ibid.config['botname'], 'nick': ibid.config['botname'], } e.message = response['reply'] self.log_event(e)