Pull to refresh

Comments 7

Туториал годный, но если им будут пользоваться новички, то лучше сразу приучать их к прекрасному :)

Можно использовать f-string вместо кучи сложений:
call = f"python3.6 audiotubeagent36/main.py {path_file_mp3} {audio_title} " \
       f"{us_audio_codec} {chat_id} {pool_object.get('_id')} {config.BOT_NAME} " \ 
       f"{duration}"


Или через .join:
params = us_audio_codec, str(chat_id), str(pool_object.get('_id')), \ 
         config.BOT_NAME, str(dutation)
call = ' '.join(params)


Можно использовать передачу словаря или json вместо строки и её парсинга.
Можно использовать двух ботов в одном коде, вместо разделения.
Можно использовать таски asyncio вместо запуска cопрограмм.
Можно использовать .get() в словарях, чтобы не ловить Exception в случае недоступности ключа.
Здесь у тебя дублируется запрос, поэтому и возникает FloodWait:
client.connect()
if not client.is_user_authorized():
    # client.send_code_request(phone) #при первом запуске - раскомментить, после авторизации для избежания FloodWait советую закомментить
    client.sign_in(phone, input('Enter code: '))
client.start()


Вижу, что пример ты брал из документации, однако в методе .start() клиент и так выполняет все действия, необходимые для авторизации.
Если требуется двухфакторка, то необходимо в конфиге указать пароль.

Простой и рабочий пример:
client.connect()
client.start(phone=config.PHONE, password=config.PASSWORD)

Не в этом дело-дело в том, что если не авторизован-можно случайно запросить много раз смс и вызвать flood wait-когда строчка закомментирована-нельзя

авторизация требуется для одной сессии, а когда отлаживаешь на разных машинах — легко случайно на новой машине запросить несколько раз смс, получив блок на сутки — поэтому так вот обезапасил — на новой машине раскомментировал, залогинился, закомментировал
UFO just landed and posted this here
UFO just landed and posted this here
Sign up to leave a comment.

Articles