у меня есть код с запросами в бд, который, примечательно со мной работает почти корректно (когда я произвожу команду). баланс в таблице user_info не меняется, но кол-во объекта в таблице economy изменяется корректно, но когда аналогичную команду делает другой юзер - ботом она игнорируется. консоль ошибок не выдает.
п.с скорее всего мой код костыль и его можно как сделать короче и компактнее, но лучше заняться решением проблемы, а уже потом оптимизации. мне так легче. код:
@dp.message_handler(commands=["marketbuy"],commands_prefix="!/")
async def cmd_marketbuy(message: types.Message):
title = f'<a href="tg://user?id={message.from_user.id}">{message.from_user.full_name}</a>'
connect = sqlite3.connect('INFO.db')
cursor = connect.cursor()
check_snus = message.text.split(" ")[1]
check_id = int(message.text.split(" ")[2])
check_amount_snus = int(message.text.split(" ")[3])
print(check_id)
if check_snus == "iceberg":
for economy_check_amount_iceberg in cursor.execute("SELECT amount_iceberg FROM economy WHERE user_id = ?",(check_id, )):
economy_last_check_amount_iceberg = economy_check_amount_iceberg[0]
if check_amount_snus > economy_last_check_amount_iceberg:
for i in cursor.execute("SELECT user_name FROM user_info WHERE user_id = ?",(check_id, )):
name_karma = (list(i)[0])
for i2 in cursor.execute("SELECT user_id FROM user_info WHERE user_id = ?",(check_id, )):
name_karma2 = (list(i2)[0])
await bot.send_message(message.chat.id, text = "У @{}".format((i)[0]) + " С ID {}".format((i2)[0]) + " недостаточно шпаков")
else:
for check_price in cursor.execute("SELECT iceberg_price FROM economy WHERE user_id = ?",(message.from_user.id, )):
name_karma3 = (list(check_price)[0])
result = check_amount_snus * check_price
lastresult = sum(result)
cursor.execute("UPDATE inventory_snus SET ICEBERG = ICEBERG + ? WHERE user_id = ?", (check_amount_snus, message.from_user.id, ))
cursor.execute("UPDATE user_info SET balance = balance - ? WHERE user_id = ?", (lastresult, message.from_user.id, ))
connect.commit()
cursor.execute("UPDATE user_info SET balance = balance + ? WHERE user_id = ?", (lastresult, check_id, ))
cursor.execute("UPDATE economy SET amount_iceberg = amount_iceberg - ? WHERE user_id = ?", (check_amount_snus, check_id, ))
connect.commit()
await bot.send_message(message.chat.id, text = f"{title}, совершил удачную сделку\nТы купил " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")
await bot.send_message(check_id, text = f"{title}, совершил удачную сделку\nОн купил у тебя " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")
elif check_snus == "arqa":
pass
elif check_snus == "kasta":
pass
elif check_snus == "corvus":
pass
else:
pass
connect.commit()