Пример #1
0
    def recv_msg_text(self, msg):
        name = msg.name
        textmsg = MSNTextMessage.from_net(msg.payload)

        buddy = self.buddies[name] = self.protocol.get_buddy(name)
        self.typing_status[buddy] = None

        if hasattr(textmsg, 'html'):
            message = textmsg.html().replace('\n', '<br />')
            content_type = 'text/html'
        else:
            message = textmsg
            content_type = 'text/plain'

        service_channel = offline = msg.payload.get("Service-Channel", None)
        sms = service_channel == 'IM/Mobile'
        offline = service_channel == "IM/Offline"
        timestamp_str = msg.payload.get('Original-Arrival-Time', None)
        if timestamp_str is None:
            timestamp = None
        else:
            timestamp = datetime.datetime.fromtimestamp(SOAPServices.strptime_highres(timestamp_str))

        did_receive = self.received_message(buddy, message, sms = sms, content_type = content_type,
                                            offline = offline, timestamp = timestamp)

        if name != self.self_buddy.name and did_receive:
            Conversation.incoming_message(self)
Пример #2
0
    def on_message_recv(self, name, msg, sms = False):
        buddy = self.buddies[name] = self.protocol.get_buddy(name)
        self.typing_status[buddy] = None

        if hasattr(msg, 'html'):
            message = msg.html().replace('\n', '<br />')
            content_type = 'text/html'
        else:
            message = msg
            content_type = 'text/plain'

        did_receive = self.received_message(buddy, message, sms = sms, content_type = content_type)

        if name != self.self_buddy.name and did_receive:
            Conversation.incoming_message(self)