Пишу настройку валюты экономики для своего бота. Постоянно вылезают разные ошибки. Хочу исправить хотя бы эту ошибку и посмотреть будет ли работать так, как мне надо или же нет. Так же буду рад, если мне подскажут как мне сделать сравнение валюты. То есть если минимальная валюта больше максимальной, то будет вывод ошибки, как то так, в коде в общем будет все понятнее. Заранее спасибо за решение одного или всех вопросов.
#Установка минимальной валюты
@commands.command(name = "set_min_cash", aliases = ["min_cash"])
async def __min_cash(self, ctx, cash: int = None):
data = await self.db.get_max_cash(cash)
if cash is None: #если валюта не указана
await ctx.send("Укажите минимальную валюту!")
elif cash < 0: #если валюта меньше нуля
await ctx.send("Минимальная валюта не может быть меньше нуля!")
else:
if cash > data['cash']: #если минимальная валюта больше максимальной
await ctx.send("Минимальная валюта не может быть больше или равна максимальной валюте!")
else:
await self.db.insert_min_cash(cash)
await ctx.send("Минимальная валюта установлена!")
Ниже сами функции
async def insert_min_cash(self, ctx, cash):
async with aiosqlite.connect(self.db_name) as db:
cursor = await db.cursor()
await cursor.execute("INSERT INTO eco_min_cash VALUES(?, ?)", [ctx.guild.id, cash])
await db.commit()
async def insert_max_cash(self, ctx, cash):
async with aiosqlite.connect(self.db_name) as db:
cursor = await db.cursor()
await cursor.execute("INSERT INTO eco_max_cash VALUES(?, ?)", [ctx.guild.id, cash])
await db.commit()
async def get_min_cash(self, cash, *, all_data: bool=False):
async with aiosqlite.connect(self.db_name) as db:
db.row_factory = aiosqlite.Row
cursor = await db.cursor()
result = None
if all_data:
# :role: - like guild id
await cursor.execute("SELECT * FROM eco_min_cash WHERE guild_id = ?", [cash])
result = await cursor.fetchall()
else:
await cursor.execute("SELECT * FROM eco_min_cash WHERE guild_id = ? AND cash = ?", [cash.guild.id, cash])
result = await cursor.fetchone()
return result
async def get_max_cash(self, ctx, cash, *, all_data: bool=False):
async with aiosqlite.connect(self.db_name) as db:
db.row_factory = aiosqlite.Row
cursor = await db.cursor()
result = None
if all_data:
# :role: - like guild id
await cursor.execute("SELECT * FROM eco_max_cash WHERE guild_id = ?", [cash])
result = await cursor.fetchall()
else:
await cursor.execute("SELECT * FROM eco_max_cash WHERE cash = ? AND guild_id = ?", [cash, ctx.guild.id])
result = await cursor.fetchone()
return result