continued work on rewrite
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import re, sys, os, io, sqlite3, hashlib, time, datetime
|
import re, sys, os, io, sqlite3, hashlib, time, datetime
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import logging, traceback
|
import logging, traceback, pprint
|
||||||
|
|
||||||
from sleekxmpp.componentxmpp import ComponentXMPP
|
from sleekxmpp.componentxmpp import ComponentXMPP
|
||||||
from sleekxmpp import Presence, Message
|
from sleekxmpp import Presence, Message
|
||||||
@@ -263,7 +263,7 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
class MessageHandler():
|
class MessageHandler():
|
||||||
_unknown_command_handler = lambda self: "Unknown command, for a list send '!help'"
|
_unknown_command_handler = lambda self, self2: "Unknown command, for a list send '!help'"
|
||||||
_on_connect = lambda: None
|
_on_connect = lambda: None
|
||||||
|
|
||||||
def __init__(self, msg):
|
def __init__(self, msg):
|
||||||
@@ -350,7 +350,7 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
if len(hndl.arguments) != 1:
|
if len(hndl.arguments) != 1:
|
||||||
return "Wrong number of arguments"
|
return "Wrong number of arguments"
|
||||||
|
|
||||||
phone_no = arguments[0]
|
phone_no = hndl.arguments[0]
|
||||||
|
|
||||||
hndl._update("Please wait...")
|
hndl._update("Please wait...")
|
||||||
self.spawn_tg_client(hndl.jid, phone_no)
|
self.spawn_tg_client(hndl.jid, phone_no)
|
||||||
@@ -426,12 +426,20 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
return "Dialogs reloadad"
|
return "Dialogs reloadad"
|
||||||
|
|
||||||
def logout(hndl, self):
|
def logout(hndl, self):
|
||||||
|
"""Deletes current Telegram session at Gateway"""
|
||||||
self.tg_connections[hndl.jid].log_out()
|
self.tg_connections[hndl.jid].log_out()
|
||||||
self.db_connection.execute("DELETE FROM accounts WHERE jid = ?", (hndl.jid,))
|
self.db_connection.execute("DELETE FROM accounts WHERE jid = ?", (hndl.jid,))
|
||||||
return 'Your Telegram session was deleted'
|
return 'Your Telegram session was deleted'
|
||||||
|
|
||||||
def add(self): #1 arg
|
def add(hndl, self): #1 arg
|
||||||
result = self.tg_connections[jid].get_entity(parsed[1])
|
"""Add contact by nickname or t.me link"""
|
||||||
|
if len(hndl.arguments) != 1:
|
||||||
|
return "Wrong number of arguments"
|
||||||
|
|
||||||
|
argument = hndl.arguments[0]
|
||||||
|
jid = hndl.jid
|
||||||
|
|
||||||
|
result = self.tg_connections[jid].get_entity(argument)
|
||||||
if type(result) == User:
|
if type(result) == User:
|
||||||
tg_peer = InputPeerUser( result.id, result.access_hash )
|
tg_peer = InputPeerUser( result.id, result.access_hash )
|
||||||
result = self.tg_connections[jid].invoke( SendMessageRequest(tg_peer, 'Hello! I just want to add you in my contact list.', generate_random_long() ) )
|
result = self.tg_connections[jid].invoke( SendMessageRequest(tg_peer, 'Hello! I just want to add you in my contact list.', generate_random_long() ) )
|
||||||
@@ -444,8 +452,15 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
|
|
||||||
self.tg_process_dialogs(jid)
|
self.tg_process_dialogs(jid)
|
||||||
|
|
||||||
def join(self): #1 arg
|
def join(hndl, self): #1 arg
|
||||||
link = parsed[1].split('/') # https://t.me/joinchat/HrCmckx_SkMbSGFLhXCvSg
|
"""Join conference via invite link"""
|
||||||
|
if len(hndl.arguments) != 1:
|
||||||
|
return "Wrong number of arguments"
|
||||||
|
|
||||||
|
argument = hndl.arguments[0]
|
||||||
|
jid = hndl.jid
|
||||||
|
|
||||||
|
link = argument.split('/') # https://t.me/joinchat/HrCmckx_SkMbSGFLhXCvSg
|
||||||
self.tg_connections[jid].invoke(ImportChatInviteRequest(link[4]))
|
self.tg_connections[jid].invoke(ImportChatInviteRequest(link[4]))
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
self.tg_process_dialogs(jid)
|
self.tg_process_dialogs(jid)
|
||||||
@@ -472,19 +487,23 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
self.tg_process_dialogs(jid)
|
self.tg_process_dialogs(jid)
|
||||||
|
|
||||||
def username(self): #1 arg
|
def username(self): #1 arg
|
||||||
|
"""Change your Telegram display name"""
|
||||||
username = parsed[1]
|
username = parsed[1]
|
||||||
self.tg_connections[jid].invoke(UpdateUsernameRequest(username))
|
self.tg_connections[jid].invoke(UpdateUsernameRequest(username))
|
||||||
|
|
||||||
def name(self): #1 or 2 args
|
def name(self): #1 or 2 args
|
||||||
|
"""Change your Telegram display name"""
|
||||||
firstname = parsed[1]
|
firstname = parsed[1]
|
||||||
lastname = parsed[2] if len(parsed) > 2 else None
|
lastname = parsed[2] if len(parsed) > 2 else None
|
||||||
self.tg_connections[jid].invoke(UpdateProfileRequest(first_name = firstname, last_name = lastname))
|
self.tg_connections[jid].invoke(UpdateProfileRequest(first_name = firstname, last_name = lastname))
|
||||||
|
|
||||||
def about(self): #>0 args
|
def about(self): #>0 args
|
||||||
|
"""Change your Telegram 'about' text"""
|
||||||
about = iq['body'][7:]
|
about = iq['body'][7:]
|
||||||
self.tg_connections[jid].invoke(UpdateProfileRequest(about = about))
|
self.tg_connections[jid].invoke(UpdateProfileRequest(about = about))
|
||||||
|
|
||||||
def import_contact(self): #2 args
|
def import_contact(self): #2 args
|
||||||
|
"""Add contact by phone number"""
|
||||||
phone = parsed[1]
|
phone = parsed[1]
|
||||||
firstname = parsed[2]
|
firstname = parsed[2]
|
||||||
lastname = parsed[3] if len(parsed) > 3 else None
|
lastname = parsed[3] if len(parsed) > 3 else None
|
||||||
@@ -494,6 +513,7 @@ class XMPPTelegram(ComponentXMPP):
|
|||||||
self.tg_process_dialogs(jid)
|
self.tg_process_dialogs(jid)
|
||||||
|
|
||||||
def roster(hndl, self):
|
def roster(hndl, self):
|
||||||
|
"""Send Telegram contact list back, with JIDs"""
|
||||||
response = "Telegram chats:\n"
|
response = "Telegram chats:\n"
|
||||||
for jid,tid in self.contact_list[hndl.jid].items():
|
for jid,tid in self.contact_list[hndl.jid].items():
|
||||||
response += "{}: {}\n".format(tid, jid)
|
response += "{}: {}\n".format(tid, jid)
|
||||||
|
|||||||
Reference in New Issue
Block a user