Удаление пользователя из базы данных бота телеграм
Всем хорошего дня, утра, ночи.
Разрабатываю телеграмм-бота на библиотеке telebot. Столкнулся с проблемой, при которой бот не делает рассылку всем пользователям, если кто-то из них остановил бота.
У меня есть база данных (текстовый файл с ID), в который добавляются пользователи после запуска бота, причем записываются без повторений, с этим все окей.
@bot.message_handler(commands=['start'])
def welcome(message):
if not message.chat.id in joinUser:
join = open("join.txt", "a")
join.write(str(message.chat.id) + "\n")
joinUser.add(message.chat.id)
join.close()
После чего я хочу сделать рассылку всем подписавшимся, открываю файл с ID и отсылаю всем по порядку из этого файла сообщение и тут возникает проблема, если человек отписался, то его ID из базы не удаляется и бот виснет над отправкой этого сообщения и не отсылает никому.
bot.message_handler(commands=["rs"])
def mess(message):
if ADMIN == message.chat.id:
for user in joinUser:
bot.send_message(user,message.text[message.text.find(" "):])
В связи с этим вопрос, как можно проверить, что пользователь остановил бота и удалить его из БД ?
Ответы (2 шт):
Рекомендую использовать mysql для этого. А вообще когда человек отписывается от бота тебе приходит апдейт, который ты можешь словить и удалить бота из своей «бд»
С самого телеграмма не удалить. Лучше использовать sql базу и при рассылке помечать тех кому не удалось отправить чтобы в дальнейшем просто проходить их мимо.
Или просто обернуть в try except и пропускать в случае ошибки.