mogilyoy
@mogilyoy
учусь

Как ввести в командную строку текст через бота в телеграме?

Для создание клиент-файла необходимо заполнить номер телефона и код аутентификации. Хочу реализовать их ввод через бота в телеграм. Как можно ввести текст в командную строку? В какую сторону двигаться? Библиотека telethon.
623b7c792f69a236107949.png
Создание таких сессий происходит через:
client = TelegramClient('session_test', api_id, api_hash)
client.start()
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
@AlbertForest
client.start() может принимать сопрограмму как аргумент. Я использую это как раз так как вы описываете.
Кода под рукой нет, но я попробую
async def GetCode(self, timeout):
        while not self.code and timeout > int(time.time()):
            self.project = await self.getDB()
            bot_last_message = self.project.bot_last_message.split(":")
            if bot_last_message:
                message_type = bot_last_message[0]
                if message_type == "telegram_code":
                    telegram_code = bot_last_message[2]
                    self.code = telegram_code
                    await self.clear_bot_last_message()
                    return self.code

            await asyncio.sleep(1)
        return None

client.start(phone, code_callback=self.GetCode)

сначала получаем phone от бота, затем создаем клиента и ждем код. Как только он появится в базе, сопрограмма GetCode завершится и client.start продолжит выполнение

bot_last_message выглядит так: telegram_code:phone:code
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
lxstvayne
@lxstvayne
Люблю Python
Можно в поток ввода кинуть строчку
import sys
import io

sys.stdin = io.StringIO("Hello")
a = input()
print(a)

sys.stdin = io.StringIO("World!")
b = input()
print(b)

Но, я не уверен, лучшее ли это решение...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы