def message_received(self, user, stanza): body = stanza.get_body() if not body: return if user: fparams = self.user_format_params(user) else: fparams = dict(self.fparams) d = delay.get_delay(stanza) if d: fparams["timestamp"] = d.get_datetime_local() if body.startswith(u"/me "): fparams["msg"] = body[4:] self.buffer.append_themed("muc.action", fparams) self.buffer.update() return else: fparams["msg"] = body fr = stanza.get_from() if user is None: self.buffer.append_themed("muc.info", fparams) self.buffer.update() return elif fr == self.room_state.room_jid: self.plugin.cjc.send_event("own groupchat message received", body) format = "muc.me" elif self.room_state.me.nick.lower() in body.lower(): self.plugin.cjc.send_event("groupchat message to me received", body) format = "muc.to_me" else: self.plugin.cjc.send_event("groupchat message received", body) format = "muc.other" self.buffer.append_themed(format, fparams) self.buffer.update()
def message_received(self,user,stanza): body=stanza.get_body() if not body: return if user: fparams=self.user_format_params(user) else: fparams=dict(self.fparams) d=delay.get_delay(stanza) if d: fparams["timestamp"]=d.get_datetime_local() if body.startswith(u"/me "): fparams["msg"]=body[4:] self.buffer.append_themed("muc.action",fparams) self.buffer.update() return else: fparams["msg"]=body fr=stanza.get_from() if user is None: self.buffer.append_themed("muc.info",fparams) self.buffer.update() return elif fr==self.room_state.room_jid: self.plugin.cjc.send_event("own groupchat message received",body) format="muc.me" elif self.room_state.me.nick.lower() in body.lower(): self.plugin.cjc.send_event("groupchat message to me received",body) format="muc.to_me" else: self.plugin.cjc.send_event("groupchat message received",body) format="muc.other" self.buffer.append_themed(format,fparams) self.buffer.update()
def message_normal(self, stanza): fr = stanza.get_from() thread = stanza.get_thread() subject = stanza.get_subject() body = stanza.get_body() if not subject and not body: return if body is None: body = u"" d = delay.get_delay(stanza) if d: timestamp = d.get_datetime_local() else: timestamp = None conv = self.find_or_make(fr, thread) self.cjc.send_event("message received", body) conv.add_received(fr, subject, body, thread, timestamp) archivers = self.cjc.plugins.get_services(Archiver) for archiver in archivers: archiver.log_event("message", fr, 'in', timestamp, subject, body, thread) return 1
def affiliation_changed(self,user,old_affiliation,new_affiliation,stanza): fparams=self.user_format_params(user) d=delay.get_delay(stanza) if d: fparams["timestamp"]=d.get_datetime_local() if user.same_as(self.room_state.me): self.buffer.append_themed("muc.my_affiliation_changed",fparams) else: self.buffer.append_themed("muc.affiliation_changed",fparams) self.buffer.update() return
def role_changed(self, user, old_role, new_role, stanza): fparams = self.user_format_params(user) d = delay.get_delay(stanza) if d: fparams["timestamp"] = d.get_datetime_local() if user.same_as(self.room_state.me): self.buffer.append_themed("muc.my_role_changed", fparams) else: self.buffer.append_themed("muc.role_changed", fparams) self.buffer.update() return
def nick_changed(self,user,old_nick,stanza): fparams=self.user_format_params(user) fparams["old_nick"]=old_nick d=delay.get_delay(stanza) if d: fparams["timestamp"]=d.get_datetime_local() if user.same_as(self.room_state.me): self.buffer.append_themed("muc.my_nick_changed",fparams) else: self.buffer.append_themed("muc.nick_changed",fparams) self.buffer.update() return
def user_left(self,user,stanza): fparams=self.user_format_params(user) if stanza: d=delay.get_delay(stanza) if d: fparams["timestamp"]=d.get_datetime_local() self.plugin.cjc.send_event("groupchat user left",user.nick) if user.same_as(self.room_state.me): self.buffer.append_themed("muc.me_left",fparams) else: self.buffer.append_themed("muc.left",fparams) self.buffer.update() return
def user_joined(self, user, stanza): self.plugin.cjc.set_user_info(user.room_jid, "nick", user.nick) fparams = self.user_format_params(user) d = delay.get_delay(stanza) if d: fparams["timestamp"] = d.get_datetime_local() self.plugin.cjc.send_event("groupchat user joined", user.nick) if user.same_as(self.room_state.me): self.buffer.append_themed("muc.me_joined", fparams) else: self.buffer.append_themed("muc.joined", fparams) self.buffer.update() return
def user_left(self, user, stanza): fparams = self.user_format_params(user) if stanza: d = delay.get_delay(stanza) if d: fparams["timestamp"] = d.get_datetime_local() self.plugin.cjc.send_event("groupchat user left", user.nick) if user.same_as(self.room_state.me): self.buffer.append_themed("muc.me_left", fparams) else: self.buffer.append_themed("muc.left", fparams) self.buffer.update() return
def message_chat(self, stanza): fr = stanza.get_from() thread = stanza.get_thread() subject = stanza.get_subject() body = stanza.get_body() if body is None: body = u"" if subject: body = u"%s: %s" % (subject, body) elif not body: return d = delay.get_delay(stanza) if d: timestamp = d.get_datetime_local() else: timestamp = None conv = self.find_conversation(fr, thread, self.settings.get("merge_threads")) if not conv: conv = Conversation(self, self.cjc.jid, fr, thread, timestamp) key = fr.bare().as_unicode() if self.conversations.has_key(key): self.conversations[key].append(conv) else: self.conversations[key] = [conv] if self.settings.get("auto_popup"): cjc_globals.screen.display_buffer(conv.buffer) else: conv.buffer.update() else: if fr != conv.peer: conv.change_peer(fr) self.cjc.send_event("chat message received", body) conv.add_received(body, timestamp) archivers = self.cjc.plugins.get_services(Archiver) for archiver in archivers: archiver.log_event("chat", fr, 'in', timestamp, subject, body, thread) return 1
def subject_changed(self,user,stanza): if user: fparams=self.user_format_params(user) else: fparams=dict(self.fparams) if user: fparams["msg"]=(u"%s has changed the subject to: %s" % (user.nick,self.room_state.subject)) else: fparams["msg"]=(u"The subject has been changed to: %s" % (self.room_state.subject,)) d=delay.get_delay(stanza) if d: fparams["timestamp"]=d.get_datetime_local() self.plugin.cjc.send_event("groupchat subject changed",self.room_state.subject) self.buffer.append_themed("muc.info",fparams) self.buffer.update() return
def subject_changed(self, user, stanza): if user: fparams = self.user_format_params(user) else: fparams = dict(self.fparams) if user: fparams["msg"] = (u"%s has changed the subject to: %s" % (user.nick, self.room_state.subject)) else: fparams["msg"] = (u"The subject has been changed to: %s" % (self.room_state.subject, )) d = delay.get_delay(stanza) if d: fparams["timestamp"] = d.get_datetime_local() self.plugin.cjc.send_event("groupchat subject changed", self.room_state.subject) self.buffer.append_themed("muc.info", fparams) self.buffer.update() return
def message_chat(self,stanza): fr=stanza.get_from() thread=stanza.get_thread() subject=stanza.get_subject() body=stanza.get_body() if body is None: body=u"" if subject: body=u"%s: %s" % (subject,body) elif not body: return d=delay.get_delay(stanza) if d: timestamp=d.get_datetime_local() else: timestamp=None conv = self.find_conversation(fr, thread, self.settings.get("merge_threads")) if not conv: conv=Conversation(self,self.cjc.jid,fr,thread, timestamp) key=fr.bare().as_unicode() if self.conversations.has_key(key): self.conversations[key].append(conv) else: self.conversations[key]=[conv] if self.settings.get("auto_popup"): cjc_globals.screen.display_buffer(conv.buffer) else: conv.buffer.update() else: if fr!=conv.peer: conv.change_peer(fr) self.cjc.send_event("chat message received",body) conv.add_received(body,timestamp) archivers = self.cjc.plugins.get_services(Archiver) for archiver in archivers: archiver.log_event("chat", fr, 'in', timestamp, subject, body, thread) return 1
def message_chat(self, stanza): """ Handle incomming chat message. """ process = True message_delay = delay.get_delay(stanza) if (message_delay and message_delay.reason == "Offline Storage" ): self.logger.info("Ingnoring offline message from " + \ message_delay.fr.as_string() + ": " + stanza.get_body() ) process = False body=stanza.get_body() if process and body: command = body.split() if (command[0] == "--sudo"): self.cmd_sudo(stanza, command) else: self.plugins_message_chat(stanza) return 1
def message_normal(self,stanza): fr=stanza.get_from() thread=stanza.get_thread() subject=stanza.get_subject() body=stanza.get_body() if not subject and not body: return if body is None: body=u"" d=delay.get_delay(stanza) if d: timestamp=d.get_datetime_local() else: timestamp=None conv=self.find_or_make(fr,thread) self.cjc.send_event("message received",body) conv.add_received(fr,subject,body,thread,timestamp) archivers = self.cjc.plugins.get_services(Archiver) for archiver in archivers: archiver.log_event("message", fr, 'in', timestamp, subject, body, thread) return 1