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
def _create_session(self, client, peer, guid, application_id, context): session = MSNObjectSession(client._p2p_session_manager, peer, guid, application_id, context=context) return session
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)
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()
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))