Esempio n. 1
0
 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()
Esempio n. 2
0
 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()
Esempio n. 3
0
    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
Esempio n. 4
0
 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
Esempio n. 5
0
 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
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
 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
Esempio n. 9
0
 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
Esempio n. 10
0
 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
Esempio n. 11
0
    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
Esempio n. 12
0
 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
Esempio n. 13
0
 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
Esempio n. 14
0
    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
Esempio n. 15
0
 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
Esempio n. 16
0
    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