use OOB for relaying images XMPP->TG
This commit is contained in:
@@ -59,6 +59,7 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
self.register_plugin('xep_0030') # Service discovery
|
self.register_plugin('xep_0030') # Service discovery
|
||||||
self.register_plugin('xep_0054') # VCard-temp
|
self.register_plugin('xep_0054') # VCard-temp
|
||||||
self.register_plugin('xep_0172') # NickNames
|
self.register_plugin('xep_0172') # NickNames
|
||||||
|
self.register_plugin('xep_0066') # OOB
|
||||||
|
|
||||||
self.add_event_handler('message', self.message)
|
self.add_event_handler('message', self.message)
|
||||||
self.add_event_handler('presence_unsubscribe', self.event_presence_unsub)
|
self.add_event_handler('presence_unsubscribe', self.event_presence_unsub)
|
||||||
@@ -164,16 +165,19 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
result = None
|
result = None
|
||||||
|
|
||||||
# detect media
|
# detect media
|
||||||
#TODO: fix
|
|
||||||
#TODO: implement OOB for images
|
if "oob" in msg:
|
||||||
if msg.startswith('http') and re.match(r'(?:http\:|https\:)?\/\/.*\.(?:' + self.config['media_external_formats'] + ')', msg):
|
logging.debug("Found OOB content in message")
|
||||||
urls = re.findall(r'(?:http\:|https\:)?\/\/.*\.(?:' + self.config['media_external_formats'] + ')', msg)
|
if "url" in msg['oob']:
|
||||||
message = msg.replace(urls[0], '')
|
url = msg['oob']['url']
|
||||||
media = InputMediaPhotoExternal(urls[0], "Image")
|
logging.debug("Found OOB URL: {}".format(url))
|
||||||
try:
|
if url.split('.')[-1] in self.config['media_external_formats']:
|
||||||
result = self.tg_connections[jid].invoke(SendMediaRequest(tg_peer, media, message, random_id = generate_random_long(), reply_to_msg_id = reply_mid))
|
logging.debug("Media found")
|
||||||
except Exception:
|
media = InputMediaPhotoExternal(url, "Image")
|
||||||
print('Media upload failed.')
|
try:
|
||||||
|
result = self.tg_connections[jid].invoke(SendMediaRequest(tg_peer, media, "Image", random_id = generate_random_long(), reply_to_msg_id = reply_mid))
|
||||||
|
except Exception:
|
||||||
|
print('Media upload failed.')
|
||||||
|
|
||||||
# media send failed. #
|
# media send failed. #
|
||||||
if not result:
|
if not result:
|
||||||
|
|||||||
Reference in New Issue
Block a user