feat(aurora): added a Moderation model
Some checks failed
Actions / Build Documentation (MkDocs) (pull_request) Successful in 33s
Actions / Lint Code (Ruff & Pylint) (pull_request) Failing after 49s

This commit is contained in:
SeaswimmerTheFsh 2024-05-04 13:41:11 -04:00
parent c618f9be72
commit c0969ea947
Signed by: cswimr
GPG key ID: 5D671B5D03D65A7F
5 changed files with 467 additions and 293 deletions

View file

@ -9,6 +9,7 @@
"disabled": false,
"min_bot_version": "3.5.0",
"min_python_version": [3, 10, 0],
"requirements": ["pydantic"],
"tags": [
"mod",
"moderate",

62
aurora/models.py Normal file
View file

@ -0,0 +1,62 @@
from typing import Dict, List, Optional
from discord import Guild
from pydantic import BaseModel
from utilities.database import connect
class Moderation(BaseModel):
moderation_id: int
timestamp: int
moderation_type: str
target_type: str
target_id: int
moderator_id: int
resolved: bool
expired: bool
duration: str
end_timestamp: int
reason: str
changes: List[Dict]
metadata: Dict
resolved_by: Optional[int] = None
resolve_reason: Optional[str] = None
role_id: Optional[int] = None
def __str__(self):
return f"{self.moderation_type} {self.target_type} {self.target_id} {self.reason}"
async def from_sql(self, moderation_id: int, guild: Guild):
""""""
database = connect()
cursor = database.cursor()
query = f"SELECT * FROM moderation_{guild.id} WHERE moderation_id = ?;"
cursor.execute(query, (moderation_id,))
result = cursor.fetchone()
cursor.close()
database.close()
if result:
(
self.moderation_id,
self.timestamp,
self.moderation_type,
self.target_type,
self.target_id,
self.moderator_id,
self.role_id,
self.duration,
self.end_timestamp,
self.reason,
self.resolved,
self.resolved_by,
self.resolve_reason,
self.expired,
self.changes,
self.metadata,
) = result[0:16]
return self