У меня есть следующий код для доступа к каналу Telegram и загрузки сообщений.
from telethon.sync import TelegramClient
from telethon.errors import SessionPasswordNeededError
# Create the client and connect
client = TelegramClient(you_username, api_id, api_hash)
client.start()
print("Client Created")
# Ensure you're authorized
# limit=None will collect all the messages from nytimes Telegram channel (https://t.me/nytimes)
# This open an input box and ask you to input your phone number
#
async def main(chat_name, limit):
# "async with" creates asynchronous context managers
# It is an extension of the “with” expression for use only in coroutines within asyncio programs
async with TelegramClient(session_name, api_id, api_hash) as client:
# Get chat info
chat_info = await client.get_entity(chat_name)
# Get all the messages, given the limit
# It will return the latest 5 messages if limit is 5
messages = await client.get_messages(entity=chat_info, limit=limit)
# return the results in a dictionary
return ({"messages": messages, "channel": chat_info})
chat_input = "bbc"
results = await main(chat_name = chat_input, limit=1000)
Когда я запускаю код, выбираю его и нажимаю F9 (программное обеспечение Spyder для запуска выбранных частей), он работает. Когда я запускаю весь код, я получаю ошибку. Знаешь почему? Как это исправить?
Ошибка:
File c:\users\xxx\documents\trading system\telegram boot.py:77
results = await main(chat_name = chat_input, limit=1000)
^ SyntaxError: 'await' outside function
Подробнее здесь: https://stackoverflow.com/questions/790 ... -structure
Асинхронность — структура ожидания [закрыто] ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение