fix(aurora): fixed some issues with aiosqlite
This commit is contained in:
parent
56a2f96a2d
commit
3383e84221
4 changed files with 34 additions and 38 deletions
|
@ -128,7 +128,7 @@ class Aurora(commands.Cog):
|
||||||
async def addrole_on_member_join(self, member: discord.Member):
|
async def addrole_on_member_join(self, member: discord.Member):
|
||||||
"""This method automatically adds roles to users when they join the server."""
|
"""This method automatically adds roles to users when they join the server."""
|
||||||
if not await self.bot.cog_disabled_in_guild(self, member.guild):
|
if not await self.bot.cog_disabled_in_guild(self, member.guild):
|
||||||
async with connect() as database:
|
database = await connect()
|
||||||
query = f"""SELECT moderation_id, role_id, reason FROM moderation_{member.guild.id} WHERE target_id = ? AND moderation_type = 'ADDROLE' AND expired = 0 AND resolved = 0;"""
|
query = f"""SELECT moderation_id, role_id, reason FROM moderation_{member.guild.id} WHERE target_id = ? AND moderation_type = 'ADDROLE' AND expired = 0 AND resolved = 0;"""
|
||||||
async with database.execute(query, (member.id,)) as cursor:
|
async with database.execute(query, (member.id,)) as cursor:
|
||||||
async for row in cursor:
|
async for row in cursor:
|
||||||
|
|
|
@ -27,10 +27,11 @@ class ImportAuroraView(ui.View):
|
||||||
"Deleting original table...", ephemeral=True
|
"Deleting original table...", ephemeral=True
|
||||||
)
|
)
|
||||||
|
|
||||||
async with await connect() as database:
|
database = await connect()
|
||||||
query = f"DROP TABLE IF EXISTS moderation_{self.ctx.guild.id};"
|
query = f"DROP TABLE IF EXISTS moderation_{self.ctx.guild.id};"
|
||||||
database.execute(query)
|
database.execute(query)
|
||||||
database.commit()
|
database.commit()
|
||||||
|
database.close()
|
||||||
|
|
||||||
await interaction.edit_original_response(content="Creating new table...")
|
await interaction.edit_original_response(content="Creating new table...")
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,7 @@ class Moderation(AuroraGuildModel):
|
||||||
from ..utilities.json import dumps
|
from ..utilities.json import dumps
|
||||||
query = f"UPDATE moderation_{self.guild_id} SET timestamp = ?, moderation_type = ?, target_type = ?, moderator_id = ?, role_id = ?, duration = ?, end_timestamp = ?, reason = ?, resolved = ?, resolved_by = ?, resolve_reason = ?, expired = ?, changes = ?, metadata = ? WHERE moderation_id = ?;"
|
query = f"UPDATE moderation_{self.guild_id} SET timestamp = ?, moderation_type = ?, target_type = ?, moderator_id = ?, role_id = ?, duration = ?, end_timestamp = ?, reason = ?, resolved = ?, resolved_by = ?, resolve_reason = ?, expired = ?, changes = ?, metadata = ? WHERE moderation_id = ?;"
|
||||||
|
|
||||||
async with connect() as database:
|
database = await connect()
|
||||||
await database.execute(query, (
|
await database.execute(query, (
|
||||||
self.timestamp.timestamp(),
|
self.timestamp.timestamp(),
|
||||||
self.moderation_type,
|
self.moderation_type,
|
||||||
|
@ -140,6 +140,8 @@ class Moderation(AuroraGuildModel):
|
||||||
dumps(self.metadata),
|
dumps(self.metadata),
|
||||||
self.moderation_id,
|
self.moderation_id,
|
||||||
))
|
))
|
||||||
|
await database.commit()
|
||||||
|
await database.close()
|
||||||
|
|
||||||
logger.debug("Row updated in moderation_%s!\n%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s",
|
logger.debug("Row updated in moderation_%s!\n%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s",
|
||||||
self.moderation_id,
|
self.moderation_id,
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# pylint: disable=cyclic-import
|
# pylint: disable=cyclic-import
|
||||||
import json
|
import json
|
||||||
from contextlib import asynccontextmanager
|
|
||||||
from typing import Any, AsyncGenerator
|
|
||||||
|
|
||||||
import aiosqlite
|
import aiosqlite
|
||||||
from discord import Guild
|
from discord import Guild
|
||||||
|
@ -10,14 +8,13 @@ from redbot.core import data_manager
|
||||||
from .logger import logger
|
from .logger import logger
|
||||||
|
|
||||||
|
|
||||||
@asynccontextmanager
|
async def connect() -> aiosqlite.Connection:
|
||||||
async def connect() -> AsyncGenerator[aiosqlite.Connection, Any, None]:
|
|
||||||
"""Connects to the SQLite database, and returns a connection object."""
|
"""Connects to the SQLite database, and returns a connection object."""
|
||||||
try:
|
try:
|
||||||
connection = await aiosqlite.connect(
|
connection = await aiosqlite.connect(
|
||||||
database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db"
|
database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db"
|
||||||
)
|
)
|
||||||
yield connection
|
return connection
|
||||||
|
|
||||||
except aiosqlite.OperationalError as e:
|
except aiosqlite.OperationalError as e:
|
||||||
logger.error("Unable to access the SQLite database!\nError:\n%s", e.msg)
|
logger.error("Unable to access the SQLite database!\nError:\n%s", e.msg)
|
||||||
|
@ -25,10 +22,6 @@ async def connect() -> AsyncGenerator[aiosqlite.Connection, Any, None]:
|
||||||
f"Unable to access the SQLite Database!\n{e.msg}"
|
f"Unable to access the SQLite Database!\n{e.msg}"
|
||||||
) from e
|
) from e
|
||||||
|
|
||||||
finally:
|
|
||||||
if connection:
|
|
||||||
await connection.close()
|
|
||||||
|
|
||||||
|
|
||||||
async def create_guild_table(guild: Guild):
|
async def create_guild_table(guild: Guild):
|
||||||
database = await connect()
|
database = await connect()
|
||||||
|
|
Loading…
Reference in a new issue