База данных даёт пустой список
Пишу игрового телеграм-бота. И вот столкнулся с проблемой Проблема на скрине
А также пробовал вывести в командную строку Debug: []
Вот код: main.py
@dp.message_handler(lambda message: 'обменять' in message.text.lower())
async def sell_donate(message: types.Message):
try:
_, amount = message.text.lower().split('обменять')
amount = int(amount)
except:
amount = False
if amount:
user_id = message.from_user.id
user = select_user_table(user_id)
if not user:
NotUser(user_id, user)
donate_balance = select_donate_table(user_id)
print("Debug:", donate_balance)
if donate_balance and donate_balance[0]:
donate_balance = donate_balance[0][2]
if donate_balance >= amount:
await message.answer(f'Пополнение баланса на {amount * 10}e9...')
try:
give_to(user_id, amount * 10000000000)
update_donate_sell_table(user_id, amount)
updated_donate_balance = select_donate_table(user_id)
if updated_donate_balance and updated_donate_balance[0]:
updated_donate_balance = updated_donate_balance[0][2]
await message.answer(f'Пополнение баланса на {amount * 10}e9 прошло успешно. '
f'Твой текущий баланс: {updated_donate_balance} ByCoin')
except Exception as e:
await message.answer(f'Что-то пошло не так. Попробуйте еще раз')
else:
await message.answer('У тебя нет стольки денег\n'
f'Твой баланс: {donate_balance} ByCoin')
else:
await message.answer('У вас нет доната')
else:
await message.answer('Напиши в таком формате\n'
'обменять [Количество]')
await message.delete()
@dp.message_handler(lambda message: message.text.lower().startswith('донат'))
async def donate_list_of_user(message: Message):
user_id = message.from_user.id
user = select_user_table(user_id)
if not user:
NotUser(user_id, user)
user = select_user_table(user_id)[0]
donate_user = select_donate_table(user[0])[0][2]
await message.answer(f'Ваш донат баланс: {donate_user} ByCoin\n'
f'1 ByCoin это 10 млрд$\n'
f'Вы можете продать донат командой: \n'
f'"Продать донат [Количество]"\n')
database.py
def create_donate_table():
database = sqlite3.connect("game_database.db")
cursor = database.cursor()
cursor.execute('''
create table if not exists donates(
donat_id integer primary key autoincrement,
user_id BIGINT NOT NULL,
donate_balance integer NOT NULL,
FOREIGN KEY(user_id) REFERENCES users(user_id)
)
''')
def insert_donate_table(user_id):
database = sqlite3.connect('game_database.db')
cursor = database.cursor()
cursor.execute('''
insert into donates(user_id, donate_balance)
values (
(select user_id from users where telegram_id = ? )
, ?)
''', (user_id, 0))
database.commit()
database.close()
def select_donate_table(user_id):
database = sqlite3.connect('game_database.db')
cursor = database.cursor()
cursor.execute('''
select * from donates where user_id = ?
''', (user_id,))
donate = cursor.fetchall()
database.close()
return donate
def update_donate_table(user_id, amount):
database = sqlite3.connect('game_database.db')
cursor = database.cursor()
cursor.execute('''
update donates
set donate_balance = ((select donate_balance from donates where user_id = ?) + ?)
where user_id = ?;
''', (user_id, amount, user_id))
database.commit()
database.close()
def select_user_table(user_id):
database = sqlite3.connect('game_database.db')
cursor = database.cursor()
cursor.execute('''
select * from users where telegram_id = ?
''', (user_id,))
user = cursor.fetchall()
database.close()
return user