@Sverepay

Почему в БД значение меняется на 0?

Делал рассылку в боте(по видео из ЮТУБА). Вроде рассылка работает, но после того как я решил заблокать бота и отправить сообщение оно не пришло(так и должно быть). Далее я разблокал его и снова сделал рассылку но теперь мне ничего не пришло

Код рассылки
@dp.message_handler(commands=['sendall'])
async def sendall(message: types.Message):
    if message.from_user.id == 2092275719:
        photo = InputFile("media/rassilka.jpg")
        textall = message.text[9:]
        users = db.get_active()
        for row in users:
            try:
                await bot.send_photo(row[0],photo=photo, caption=textall, reply_markup=nav.gomainMenu)
                if int(row[1]) != 1:
                    db.set_active(row[0], 1) 
            except:
                db.set_active(row[0], 0)


Код БАЗЫ ДЫННЫХ
def set_active(self, user_id, active_user):
        with self.connection:
            return self.cursor.execute("UPDATE `users` SET `active_user` = ? WHERE `user_id` = ?", (active_user, user_id,))

    def get_active(self):
        with self.connection:
            return self.cursor.execute("SELECT `user_id`, `active_user` FROM `users`").fetchall()
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
except:
                db.set_active(row[0], 0)


Ну а нечего делать голый except. У тебя при абсолютно любой ошибке отправки пользователь молча помечается как неактивный, даже если это какой-то несвязанный твой косяк. Выясни, какое именно исключение кидается при заблокированном получателе, и лови только его. Остальные исключения журналируй.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы