diff options
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/http_upload.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/examples/http_upload.py b/examples/http_upload.py index 2e5476c0..268a22dc 100755 --- a/examples/http_upload.py +++ b/examples/http_upload.py @@ -24,17 +24,21 @@ class HttpUpload(slixmpp.ClientXMPP): A basic client asking an entity if they confirm the access to an HTTP URL. """ - def __init__(self, jid, password, recipient, filename): + def __init__(self, jid, password, recipient, filename, domain=None): slixmpp.ClientXMPP.__init__(self, jid, password) self.recipient = recipient self.filename = filename + self.domain = domain self.add_event_handler("session_start", self.start) async def start(self, event): log.info('Uploading file %s...', self.filename) - url = await self['xep_0363'].upload_file(self.filename) + def timeout_callback(arg): + raise TimeoutError("could not send message in time") + url = await self['xep_0363'].upload_file( + self.filename, domain=self.domain, timeout=10, timeout_callback=timeout_callback) log.info('Upload success!') log.info('Sending file to %s', self.recipient) @@ -68,6 +72,8 @@ if __name__ == '__main__': help="Recipient JID") parser.add_argument("-f", "--file", required=True, help="File to send") + parser.add_argument("--domain", + help="Domain to use for HTTP File Upload (leave out for your own server’s)") args = parser.parse_args() @@ -80,7 +86,7 @@ if __name__ == '__main__': if args.password is None: args.password = getpass("Password: ") - xmpp = HttpUpload(args.jid, args.password, args.recipient, args.file) + xmpp = HttpUpload(args.jid, args.password, args.recipient, args.file, args.domain) xmpp.register_plugin('xep_0071') xmpp.register_plugin('xep_0128') xmpp.register_plugin('xep_0363') |