При оплате подписки в боте бд должна записать время подписки в таблицу, но почему-то этого не происходит, далее при проверке наличия подписки, то есть ее времени функция в бд должна вернуть 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)
Тут спрашиваю статус, подписки всегда ее нет