diff options
author | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2011-08-14 12:26:44 -0400 |
---|---|---|
committer | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2011-08-14 12:26:44 -0400 |
commit | ee0ddc858a9c3e61000e6429b7fa9e06bb88bb53 (patch) | |
tree | 36f2caf24f564004049dda1404d685aa37febddf | |
parent | 450ac347abd6ac0bf719fa9110b79ae80d14c23a (diff) |
ft: add invite() argument to specify preview data.
-rw-r--r-- | papyon/msnp2p/filetransfer.py | 10 | ||||
-rw-r--r-- | papyon/p2p.py | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/papyon/msnp2p/filetransfer.py b/papyon/msnp2p/filetransfer.py index a89614b..f070786 100644 --- a/papyon/msnp2p/filetransfer.py +++ b/papyon/msnp2p/filetransfer.py @@ -55,10 +55,12 @@ class FileTransferSession(P2PSession): def preview(self): return self._preview - def invite(self, filename, size, data): + def invite(self, filename, size, data, preview): self._filename = filename self._size = size self._data = data + self._has_preview = preview is not None + self._preview = preview context = self._build_context() self._invite(context) @@ -85,7 +87,7 @@ class FileTransferSession(P2PSession): self._has_preview = not bool(info[4]) self._filename = unicode(context[20:570], "utf-16-le").rstrip("\x00") - if(self._has_preview): + if self._has_preview: self._preview = context[574:] except: @@ -96,8 +98,8 @@ class FileTransferSession(P2PSession): context = struct.pack("<5I", 574, 2, self._size, 0, int(self._has_preview)) context += struct.pack("550s", filename) context += "\xFF" * 4 - if(self._data != None): - context += self._data + if self._has_preview: + context += self._preview return context def _on_session_accepted(self): diff --git a/papyon/p2p.py b/papyon/p2p.py index 83ddfa2..e6a6a14 100644 --- a/papyon/p2p.py +++ b/papyon/p2p.py @@ -438,7 +438,7 @@ class FileTransferManager(P2PSessionHandler): ### Public API ----------------------------------------------------------- - def send(self, peer, filename, size, data=None): + def send(self, peer, filename, size, data=None, preview=None): """Send a request to start sending a file. The request is sent to each peer endpoint and we keep only the @@ -453,12 +453,14 @@ class FileTransferManager(P2PSessionHandler): @type size: int @param data: Data to send once session is accepted @type data: str or file-like object + @param preview: Preview data to send with the invitation + @type data: string @returns the meta session created to handle the invite.""" session = FileTransferMetaSession(self._client, peer) self._add_session(session) - session.invite(filename, size, data) + session.invite(filename, size, data, preview) return session ### ---------------------------------------------------------------------- @@ -658,9 +660,9 @@ class FileTransferMetaSession(P2PMetaSession): def _on_session_canceled(self, canceled_session): self.emit("canceled") - def invite(self, filename, size, data): + def invite(self, filename, size, data, preview): for session in self._sessions: - session.invite(filename, size, data) + session.invite(filename, size, data, preview) def cancel(self): for session in self._sessions: |