@uberkiba

Почему база данных не вносит данные в таблицу?

При оплате подписки в боте бд должна записать время подписки в таблицу, но почему-то этого не происходит, далее при проверке наличия подписки, то есть ее времени функция в бд должна вернуть TRUE или FALSE, но почему-то всегда возвращает FALSE даже если я сам внесу данные в БД. Кто может подсказать что не так? Остальные столбцы в БД заполняются верно и без проблем

db.py
def set_time_sub(self, chat_id, time_sub):
        with self.connection:
            return self.cursor.execute("UPDATE `users` SET `time_sub` = ? WHERE `chat_id` = ?", (chat_id, time_sub,))
            
    def get_time_sub(self, chat_id):
        with self.connection:
            result = self.cursor.execute("SELECT `time_sub` FROM `users` WHERE `chat_id` = ?", (chat_id,)).fetchall()
            for row in result:
                time_sub = int(row[0])
            return time_sub
            
            
    def get_sub_status(self, chat_id):
        with self.connection:
            result = self.cursor.execute("SELECT `time_sub` FROM `users` WHERE `chat_id` = ?", (chat_id,)).fetchall()
            for row in result:
                time_sub = int(row[0])
                
            if time_sub > int(time.time()):
                return True
            else:
                return False


main.py
@dp.callback_query_handler(text_contains='check_payment_')
async def menu(call: types.CallbackQuery):
    code = call.data[14:]
    result_pay = False
    try:
        qiwi_history = await get_history(config.number, config.qiwi)

        for i in range(4):
            if qiwi_history['data'][i]['comment'] == str(code) and qiwi_history['data'][i]['sum']['amount'] == int(
                    config.cost):
                result_pay = True
                message = call.from_user.id
                time_sub = int(time.time()) + days_to_seconds(7)
                db.set_time_sub(message, time_sub)
                await call.message.edit_text(f' Оплата найдена ')
        if not result_pay:
            payment = InlineKeyboardMarkup()
            payment.add(InlineKeyboardButton('Проверить оплату', callback_data=f'check_payment_{code}'))
            await bot.send_message(call.from_user.id, 'Платеж не найден.', reply_markup=payment)
    except Exception as e:
        payment = InlineKeyboardMarkup()
        payment.add(InlineKeyboardButton('Проверить оплату', callback_data=f'check_payment_{code}'))
        await bot.send_message(call.from_user.id, "Администратор не настроил оплату, уведомите его об этом")
        print(e)


(Оплата проверяется, платеж получен)

main.py
elif message.text == ' Парень':
            if db.get_sub_status(message.chat.id) == True:
                user_info = db.get_gender_chat('male')
                chat_two = user_info[0]
                if db.create_chat(message.chat.id, chat_two) == False:
                    db.add_queue(message.chat.id, db.get_gender(message.chat.id))
                    await bot.send_message(message.chat.id, ' Поиск собеседника', reply_markup = stop_search())
                else:
                    mess = 'Собеседник найден! Чтобы остановить диалог, напишите /stop'

                    await bot.send_message(message.chat.id, mess, reply_markup = stop_dialog())
                    await bot.send_message(chat_two, mess, reply_markup = stop_dialog())

            else:
                await bot.send_message(message.from_user.id, 'Купите подписку', reply_markup=kb.buy_lic)

Тут спрашиваю статус, подписки всегда ее нет
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы