Exemplo n.º 1
0
 def _handle_message(self, peer, guid, message):
     session = MSNObjectSession(self._client._p2p_session_manager, peer, guid, message.body.application_id, message)
     try:
         msn_object = MSNObject.parse(self._client, session.context)
     except Exception, err:
         session.reject()
         raise err
Exemplo n.º 2
0
 def _handle_message(self, peer, guid, message):
     session = MSNObjectSession(self._client._p2p_session_manager, peer,
                                guid, message.body.application_id, message)
     try:
         msn_object = MSNObject.parse(self._client, session.context)
     except Exception, err:
         session.reject()
         raise err
Exemplo n.º 3
0
 def _create_session(self, client, peer, guid, application_id, context):
     session = MSNObjectSession(client._p2p_session_manager,
                                peer,
                                guid,
                                application_id,
                                context=context)
     return session
Exemplo n.º 4
0
    def request(self, msn_object, callback, errback=None):
        if msn_object._data is not None:
            callback[0](msn_object, *callback[1:])

        if msn_object._type == MSNObjectType.CUSTOM_EMOTICON:
            application_id = ApplicationID.CUSTOM_EMOTICON_TRANSFER
        elif msn_object._type == MSNObjectType.DISPLAY_PICTURE:
            application_id = ApplicationID.DISPLAY_PICTURE_TRANSFER
        else:
            raise NotImplementedError

        session = MSNObjectSession(self._client._p2p_session_manager,
                msn_object._creator, application_id)
        handle_id = session.connect("transfer-completed",
                self._outgoing_session_transfer_completed)
        self._outgoing_sessions[session] = \
                (handle_id, callback, errback, msn_object)
        session.invite(msn_object)
Exemplo n.º 5
0
Arquivo: p2p.py Projeto: lppedd/papyon
    def _handle_message(self, peer, message):
        session = MSNObjectSession(self._client._p2p_session_manager, peer,
                                   message.body.application_id, message)

        handle_id = session.connect("completed",
                                    self._incoming_session_transfer_completed)
        self._incoming_sessions[session] = handle_id
        try:
            msn_object = MSNObject.parse(self._client, session._context)
        except ParseError:
            session.reject()
            return
        for obj in self._published_objects:
            if obj._data_sha == msn_object._data_sha:
                session.accept(obj._data)
                return session
        session.reject()
Exemplo n.º 6
0
Arquivo: p2p.py Projeto: lppedd/papyon
    def request(self, msn_object, callback, errback=None, peer=None):
        if msn_object._data is not None:
            callback[0](msn_object, *callback[1:])

        if peer is None:
            peer = self._client.address_book.search_contact(
                msn_object._creator, NetworkID.MSN)

        if msn_object._type == MSNObjectType.CUSTOM_EMOTICON:
            application_id = ApplicationID.CUSTOM_EMOTICON_TRANSFER
        elif msn_object._type == MSNObjectType.DISPLAY_PICTURE:
            application_id = ApplicationID.DISPLAY_PICTURE_TRANSFER
        else:
            raise NotImplementedError

        session = MSNObjectSession(self._client._p2p_session_manager, peer,
                                   application_id)
        handle_id = session.connect("completed",
                                    self._outgoing_session_transfer_completed)
        self._outgoing_sessions[session] = \
                (handle_id, callback, errback, msn_object)
        session.invite(repr(msn_object))
Exemplo n.º 7
0
Arquivo: p2p.py Projeto: Kjir/papyon
    def _handle_message(self, peer, message):
        session = MSNObjectSession(self._client._p2p_session_manager, peer, message.body.application_id, message)

        handle_id = session.connect("completed", self._incoming_session_transfer_completed)
        self._incoming_sessions[session] = handle_id
        try:
            msn_object = MSNObject.parse(self._client, session._context)
        except ParseError:
            session.reject()
            return
        for obj in self._published_objects:
            if obj._data_sha == msn_object._data_sha:
                session.accept(obj._data)
                return session
        session.reject()