whitespace cleanup

This commit is contained in:
2019-03-10 17:05:32 +01:00
parent cea496c808
commit 5f2e2e517d

View File

@@ -1,17 +1,17 @@
from telethon import TelegramClient
from telethon.utils import get_extension
from telethon.tl.types import UpdateShortMessage, UpdateShortChatMessage, UpdateEditMessage, UpdateDeleteMessages, \
UpdateNewMessage, UpdateUserStatus, UpdateShort, Updates, UpdateNewChannelMessage,\
UpdateChannelTooLong, UpdateDeleteChannelMessages, UpdateEditChannelMessage,\
UpdateNewMessage, UpdateUserStatus, UpdateShort, Updates, UpdateNewChannelMessage, \
UpdateChannelTooLong, UpdateDeleteChannelMessages, UpdateEditChannelMessage, \
UpdateUserName
from telethon.tl.types import InputPeerChat, InputPeerUser, InputPeerChannel, InputUser
from telethon.tl.types import MessageMediaDocument, MessageMediaPhoto, MessageMediaUnsupported, MessageMediaContact,\
from telethon.tl.types import MessageMediaDocument, MessageMediaPhoto, MessageMediaUnsupported, MessageMediaContact, \
MessageMediaGeo, MessageMediaEmpty, MessageMediaVenue
from telethon.tl.types import DocumentAttributeAnimated, DocumentAttributeAudio, DocumentAttributeFilename,\
from telethon.tl.types import DocumentAttributeAnimated, DocumentAttributeAudio, DocumentAttributeFilename, \
DocumentAttributeSticker, DocumentAttributeVideo, DocumentAttributeHasStickers
from telethon.tl.types import Message, MessageService, MessageActionChannelCreate, MessageActionChannelMigrateFrom,\
MessageActionChatCreate, MessageActionChatAddUser, MessageActionChatDeleteUser,\
MessageActionChatEditTitle, MessageActionChatJoinedByLink, MessageActionChatMigrateTo,\
from telethon.tl.types import Message, MessageService, MessageActionChannelCreate, MessageActionChannelMigrateFrom, \
MessageActionChatCreate, MessageActionChatAddUser, MessageActionChatDeleteUser, \
MessageActionChatEditTitle, MessageActionChatJoinedByLink, MessageActionChatMigrateTo, \
MessageActionPinMessage
from telethon.tl.types import UserStatusOnline, UserStatusOffline, UserStatusRecently
from telethon.tl.types import User, Chat, Channel
@@ -28,6 +28,8 @@ from xmpp_tg.utils import localtime, display_tg_name
import xmpp_tg.monkey
import traceback
# modified by adnidor
class TelegramGateClient(TelegramClient):
def __init__(self, session, api_id, api_hash, xmpp_gate, jid, phone, proxy=None):
@@ -53,7 +55,7 @@ class TelegramGateClient(TelegramClient):
self._del_pts = 0
def xmpp_update_handler(self, obj):
def xmpp_update_handler(self, update_obj):
"""
Main function: Telegram update handler.
@@ -75,88 +77,88 @@ class TelegramGateClient(TelegramClient):
try:
# message from normal chat #
if type(obj) in [UpdateShortMessage] and not obj.out:
if type(update_obj) in [UpdateShortMessage] and not update_obj.out:
fwd_from = self._process_forward_msg(obj) if obj.fwd_from else '' # process forward messages
self.gate_send_message( mfrom='u' + str(obj.user_id), mbody = '[MSG {}] {}{}'.format(obj.id, fwd_from, obj.message) )
usr = self._get_user_information(obj.user_id) # get peer information
self.invoke(ReadHistoryRequest( InputPeerUser(usr.id, usr.access_hash), obj.id )) # delivery report
fwd_from = self._process_forward_msg(update_obj) if update_obj.fwd_from else '' # process forward messages
self.xmpp_send_message(mfrom='u' + str(update_obj.user_id), mbody ='[MSG {}] {}{}'.format(update_obj.id, fwd_from, update_obj.message))
usr = self._get_user_information(update_obj.user_id) # get peer information
self.invoke(ReadHistoryRequest(InputPeerUser(usr.id, usr.access_hash), update_obj.id)) # delivery report
# message from normal group #
if type(obj) in [UpdateShortChatMessage] and not obj.out:
fwd_from = self._process_forward_msg(obj) if obj.fwd_from else '' # process forward messages
usr = self._get_user_information(obj.from_id)
if type(update_obj) in [UpdateShortChatMessage] and not update_obj.out:
fwd_from = self._process_forward_msg(update_obj) if update_obj.fwd_from else '' # process forward messages
usr = self._get_user_information(update_obj.from_id)
nickname = display_tg_name(usr)
# send message
self.gate_send_message(mfrom='g' + str(obj.chat_id), mbody ='[MSG {}] [User: {}] {}{}'.format(obj.id, nickname, fwd_from, obj.message) )
self.invoke(ReadHistoryRequest(InputPeerChat(obj.chat_id), obj.id))
self.xmpp_send_message(mfrom='g' + str(update_obj.chat_id), mbody ='[MSG {}] [User: {}] {}{}'.format(update_obj.id, nickname, fwd_from, update_obj.message))
self.invoke(ReadHistoryRequest(InputPeerChat(update_obj.chat_id), update_obj.id))
# message from supergroup or media message #
if type(obj) in [UpdateNewMessage, UpdateNewChannelMessage, UpdateEditMessage, UpdateEditChannelMessage] and not obj.message.out:
if type(update_obj) in [UpdateNewMessage, UpdateNewChannelMessage, UpdateEditMessage, UpdateEditChannelMessage] and not update_obj.message.out:
cid = None
msg = ''
fwd_from = ''
mid = obj.message.id
mid = update_obj.message.id
# detect message type
is_user = type(obj.message.to_id) is PeerUser
is_group = type(obj.message.to_id) is PeerChat
is_supergroup = type(obj.message.to_id) is PeerChannel
is_user = type(update_obj.message.to_id) is PeerUser
is_group = type(update_obj.message.to_id) is PeerChat
is_supergroup = type(update_obj.message.to_id) is PeerChannel
# detect from id
if is_user:
cid = obj.message.from_id
cid = update_obj.message.from_id
user = self._get_user_information(cid)
peer = InputPeerUser(user.id, user.access_hash)
prefix = 'u'
prefix = 'b' if user.bot else prefix
elif is_group:
cid = obj.message.to_id.chat_id
cid = update_obj.message.to_id.chat_id
peer = InputPeerChat(cid)
prefix = 'g'
elif is_supergroup:
cid = obj.message.to_id.channel_id
cid = update_obj.message.to_id.channel_id
peer = InputPeerChannel(cid, self.xmpp_gate.tg_dialogs[self.jid]['supergroups'][cid].access_hash) if cid in self.xmpp_gate.tg_dialogs[self.jid]['supergroups'] else None
prefix = 's'
# our message #
if type(obj.message) == MessageService:
obj.message.fwd_from, obj.message.post, obj.message.edit_date, obj.message.media = None, None, None, None
msg = self._process_info_msg(obj.message, peer)
elif type(obj.message) == Message:
msg = obj.message.message
if type(update_obj.message) == MessageService:
update_obj.message.fwd_from, update_obj.message.post, update_obj.message.edit_date, update_obj.message.media = None, None, None, None
msg = self._process_info_msg(update_obj.message, peer)
elif type(update_obj.message) == Message:
msg = update_obj.message.message
# is forwarded?
if obj.message.fwd_from:
fwd_from = self._process_forward_msg(obj.message)
if update_obj.message.fwd_from:
fwd_from = self._process_forward_msg(update_obj.message)
# maybe its channel? #
if obj.message.post:
if update_obj.message.post:
prefix = 'c'
# get sender information from chat info #
if not is_user and not obj.message.post:
usr = self._get_user_information(obj.message.from_id)
if not is_user and not update_obj.message.post:
usr = self._get_user_information(update_obj.message.from_id)
nickname = display_tg_name(usr)
msg = '[User: {}] {}'.format(nickname, msg)
# message media #
if obj.message.media:
msg = '{} {}'.format( msg, self._process_media_msg(obj.message.media) )
if update_obj.message.media:
msg = '{} {}'.format(msg, self._process_media_msg(update_obj.message.media))
# edited #
if obj.message.edit_date:
if update_obj.message.edit_date:
msg = '[Edited] {}'.format(msg)
# send message #
self.gate_send_message(prefix + str(cid), mbody = '[MSG {}] {}{}'.format(mid, fwd_from, msg) )
self.xmpp_send_message(prefix + str(cid), mbody ='[MSG {}] {}{}'.format(mid, fwd_from, msg))
# delivery report
if is_supergroup:
@@ -165,15 +167,15 @@ class TelegramGateClient(TelegramClient):
self.invoke(ReadHistoryRequest(peer, mid))
# Status Updates #
if type(obj) is UpdateUserStatus:
if type(update_obj) is UpdateUserStatus:
# process status update #
if type(obj.status) is UserStatusOnline:
self._status_updates[str(obj.user_id)] = { 'status': None, 'message': 'Online' }
elif type(obj.status) is UserStatusOffline:
status = 'away' if datetime.datetime.utcnow() - obj.status.was_online < datetime.timedelta(hours = self.xmpp_gate.accounts[self.jid]['status_xa_interval'] ) else 'xa'
self._status_updates[str(obj.user_id)] = { 'status': status, 'message': localtime(obj.status.was_online).strftime('Last seen at %H:%M %d/%m/%Y') }
elif type(obj.status) is UserStatusRecently:
self._status_updates[str(obj.user_id)] = { 'status': 'dnd', 'message': 'Last seen recently' }
if type(update_obj.status) is UserStatusOnline:
self._status_updates[str(update_obj.user_id)] = {'status': None, 'message': 'Online'}
elif type(update_obj.status) is UserStatusOffline:
status = 'away' if datetime.datetime.utcnow() - update_obj.status.was_online < datetime.timedelta(hours = self.xmpp_gate.accounts[self.jid]['status_xa_interval']) else 'xa'
self._status_updates[str(update_obj.user_id)] = {'status': status, 'message': localtime(update_obj.status.was_online).strftime('Last seen at %H:%M %d/%m/%Y')}
elif type(update_obj.status) is UserStatusRecently:
self._status_updates[str(update_obj.user_id)] = {'status': 'dnd', 'message': 'Last seen recently'}
else:
pass
@@ -182,7 +184,7 @@ class TelegramGateClient(TelegramClient):
print('Exception occurs!')
print(traceback.format_exc())
def gate_send_message(self, mfrom, mbody):
def xmpp_send_message(self, mfrom, mbody):
tg_from = int(mfrom[1:])
if not tg_from in self.xmpp_gate.tg_dialogs[self.jid]['users'] and not tg_from in self.xmpp_gate.tg_dialogs[self.jid]['groups'] and not tg_from in self.xmpp_gate.tg_dialogs[self.jid]['supergroups']: # new contact appeared
self.xmpp_gate.tg_process_dialogs( self.jid )
@@ -326,7 +328,7 @@ class TelegramGateClient(TelegramClient):
msg = '{} {}'.format(media.caption, msg)
elif type(media) is MessageMediaContact: # contact
msg = 'First name: {} / Last name: {} / Phone: {}'\
msg = 'First name: {} / Last name: {} / Phone: {}' \
.format(media.first_name, media.last_name, media.phone_number)
elif type(media) in [MessageMediaGeo, MessageMediaVenue]: # address
map_link_template = 'https://maps.google.com/maps?q={0:.4f},{1:.4f}&ll={0:.4f},{1:.4f}&z=16'