summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2011-08-14 12:26:44 -0400
committerLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2011-08-14 12:26:44 -0400
commitee0ddc858a9c3e61000e6429b7fa9e06bb88bb53 (patch)
tree36f2caf24f564004049dda1404d685aa37febddf
parent450ac347abd6ac0bf719fa9110b79ae80d14c23a (diff)
ft: add invite() argument to specify preview data.
-rw-r--r--papyon/msnp2p/filetransfer.py10
-rw-r--r--papyon/p2p.py10
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: