Как удалять id человека остановившего бота из txt?
В общем, хотел написать рассылку для тг-бота(питон, либа-телебот), т.е. когда пишу определённую команду и текст, то всем пользователем отправляется этот текст
Но есть такая проблема:
Если человек остановит бота, то появляется ошибка 403, как я понял, бот тупо не может отправить сообщение 1му человеку и из-за этого оно не отправляется всем т.е. надо это скорей всего как-то с помощью try проверять(если не удалось отправить, то нужно удалить этот id из txt)
Вот код:
def start(message):
if not str(message.chat.id) in joinedusers:
joinedfile = open('D:/Учёба/Колледж/проект/SUAImagazine_bot/joined.txt', 'a')
joinedfile.write(str(message.chat.id) + '\n')
joinedusers.add(message.chat.id)
#Рассылка
joinedfile = open('D:/Учёба/Колледж/проект/SUAImagazine_bot/joined.txt', 'r')
joinedusers = set()
for line in joinedfile:
joinedusers.add(line.strip())
joinedfile.close()
@bot.message_handler(commands=['adminpanel'])
def mess(message):
for user in joinedusers:
bot.send_message(user, message.text[message.text.find(' '):])```
Ответы (1 шт):
Автор решения: ComRSMaster
→ Ссылка
def start(message):
if not str(message.chat.id) in joinedusers:
with open('D:/Учёба/Колледж/проект/SUAImagazine_bot/joined.txt', 'a') as joinedfile:
joinedfile.write(str(message.chat.id) + '\n')
joinedusers.add(message.chat.id)
#Рассылка
joinedfile = open('D:/Учёба/Колледж/проект/SUAImagazine_bot/joined.txt', 'r')
joinedusers = set()
for line in joinedfile:
joinedusers.add(line.strip())
joinedfile.close()
@bot.message_handler(commands=['adminpanel'])
def mess(message):
for user in joinedusers:
bot.send_message(user, message.text[message.text.find(' '):])
@bot.my_chat_member_handler(None)
def ban_handler(member: telebot.types.ChatMemberUpdated):
if member.new_chat_member.status in ["restricted", "kicked", "left"]:
# код здесь сработает, если пользователь остановит бота
joinedusers.remove(str(member.chat.id))
else:
# код здесь сработает, если пользователь уберёт бота из чс в настройках (ошибки 403 не будет)
joinedusers.add(str(member.chat.id))
# нужно ОБЯЗАТЕЛЬНО сохранить файл