Telethon/main.py
Lonami 81e8ae5bea Added an interactive example, more doc, fixes and improvements
The interactive example allows you to list the top
dialogs and send messages to them until "!q" is entered

More documetation has been added
Fixes when representing TLObjects (lists did not represent well)
The `send_code_request` now allows to use multiple phone numbers at once
2016-09-07 11:36:34 +02:00

55 lines
2.1 KiB
Python
Executable File

import tl_generator
from tl.telegram_client import TelegramClient
from utils.helpers import load_settings
if __name__ == '__main__':
if not tl_generator.tlobjects_exist():
print('Please run `python3 tl_generator.py` first!')
else:
print('Loading interactive example...')
# First, initialize our TelegramClient and connect
settings = load_settings()
client = TelegramClient(session_user_id=settings.get('session_name', 'anonymous'),
layer=55,
api_id=settings['api_id'],
api_hash=settings['api_hash'])
client.connect()
input('You should now be connected. Press enter when you are ready to continue.')
# Then, ensure we're authorized and have access
if not client.is_user_authorized():
client.send_code_request(str(settings['user_phone']))
code = input('Enter the code you just received: ')
client.make_auth(settings['user_phone'], code)
# After that, load the top dialogs and show a list
# We use zip(*list_of_tuples) to pair all the elements together,
# hence being able to return a new list of each triple pair!
# See http://stackoverflow.com/a/12974504/4759433 for a better explanation
dialogs, displays, inputs = zip(*client.get_dialogs(8))
for i, display in enumerate(displays):
i += 1 # 1-based index for normies
print('{}. {}'.format(i, display))
# Let the user decide who they want to talk to
i = int(input('Who do you want to send messages to?: ')) - 1
dialog = dialogs[i]
display = displays[i]
input_peer = inputs[i]
# And start a while loop!
print('You are now sending messages to "{}". Type "!q" when you want to exit.'.format(display))
while True:
msg = input('Enter a message: ')
if msg == '!q':
break
client.send_message(input_peer, msg)
print('Thanks for trying the interactive example! Exiting.')