Daniil Igumenshev, гммммм. Ну вот такого никогда не видел. Кортеж вроде выглядит как кортеж, элементов несколько. Тут уже только проверять, тот ли код вообще выполняется...
Dru9p0dru9, я не это спрашиваю.
Судя по тексту вопроса, у тебя уже есть код, который в нужное время снимет бан.
В чём проблема добавить в этот код строчку, отправляющую уведомление?
sbuw, просто почитай свой код и текст ошибки внимательно.
Тебе прямо говорят: caused by "channels.GetParticipants", т.е. ошибка возникла при получении списка участников.
Ты получаешь список участников вызовом app.get_chat_members()... который находится ВНЕ try-except.
Ну и да, молча глотать все ошибки через except: pass - это обычно не очень хорошая идея.
Идентифицируй конкретные ошибки (классы исключений), которые ты хочешь игнорировать. Всё остальное пиши в журнал работы, чтобы можно было отладить и понять в чём дело. В твоём случае, подозреваю, что message.chat.id соответствует приватному, а не групповому чату.
Ну "понятные" - штука очень, очень субъективная. То, что кажется понятным и разжёванным до невозможности одному человеку, будет непонятным для другого.
Я бы посоветовал изучать обе библиотеки по отдельности, а заодно освежить знания о том, как вообще работает протокол HTTP и веб-стэк. Тогда будет понятно, какой круг задач решает та или иная библиотека.
Тогда дублирующихся монет должно быть очень много, иначе просто не почувствуешь разницу в вероятностях...