from telethon import TelegramClient | |
with open('data/tg_api_id.txt') as f: | |
api_id = f.read().strip() | |
with open('data/tg_app_api_hash.txt') as f: | |
api_hash = f.read().strip() | |
client = TelegramClient('data/session.session', api_id, api_hash) | |
async def main(): | |
# Getting information about yourself | |
me = await client.get_me() | |
# "me" is a user object. You can pretty-print | |
# any Telegram object with the "stringify" method: | |
print(me.stringify()) | |
# When you print something, you see a representation of it. | |
# You can access all attributes of Telegram objects with | |
# the dot operator. For example, to get the username: | |
username = me.username | |
print(username) | |
print(me.phone) | |
# You can print all the dialogs/conversations that you are part of: | |
async for dialog in client.iter_dialogs(): | |
print(dialog.name, 'has ID', dialog.id) | |
# You can send messages to yourself... | |
await client.send_message('me', 'Hello, myselff!') | |
# # ...to some chat ID | |
# await client.send_message(-100123456, 'Hello, group!') | |
# # ...to your contacts | |
# await client.send_message('+34600123123', 'Hello, friend!') | |
# # ...or even to any username | |
# await client.send_message('username', 'Testing Telethon!') | |
# You can, of course, use markdown in your messages: | |
message = await client.send_message( | |
'me', | |
'This message has **bold**, `code`, __italics__ and ' | |
'a [nice website](https://example.com)!', | |
link_preview=False | |
) | |
# Sending a message returns the sent message object, which you can use | |
print(message.raw_text) | |
# You can reply to messages directly if you have a message object | |
await message.reply('Cool!') | |
# Or send files, songs, documents, albums... | |
# await client.send_file('me', '/home/me/Pictures/holidays.jpg') | |
# You can print the message history of any chat: | |
async for message in client.iter_messages('me'): | |
print(message.id, message.text) | |
# You can download media from messages, too! | |
# The method will return the path where the file was saved. | |
if message.photo: | |
path = await message.download_media() | |
print('File saved to', path) # printed after download is done | |
with client: | |
client.loop.run_until_complete(main()) | |