WIP: Events and Stages
This commit is contained in:
@@ -20,6 +20,7 @@ class PycordEvent:
|
||||
"name",
|
||||
"guild_id",
|
||||
"created",
|
||||
"ended",
|
||||
"creator_id",
|
||||
"starts",
|
||||
"ends",
|
||||
@@ -33,6 +34,7 @@ class PycordEvent:
|
||||
name: str
|
||||
guild_id: int
|
||||
created: datetime
|
||||
ended: datetime | None
|
||||
creator_id: int
|
||||
starts: datetime
|
||||
ends: datetime
|
||||
@@ -74,22 +76,37 @@ class PycordEvent:
|
||||
|
||||
return cls(**db_entry)
|
||||
|
||||
@classmethod
|
||||
async def from_name(cls, event_name: str, cache: Optional[Cache] = None) -> "PycordEvent":
|
||||
# TODO Add sorting by creation date or something.
|
||||
# Duplicate events should be avoided, latest active event should be returned.
|
||||
db_entry: Dict[str, Any] | None = await cls.__collection__.find_one({"name": event_name})
|
||||
|
||||
if db_entry is None:
|
||||
raise RuntimeError(f"Event with name {event_name} not found")
|
||||
|
||||
if cache is not None:
|
||||
cache.set_json(f"{cls.__short_name__}_{db_entry['_id']}", db_entry)
|
||||
|
||||
return cls(**db_entry)
|
||||
|
||||
# TODO Implement this method
|
||||
@classmethod
|
||||
async def create(
|
||||
cls,
|
||||
name: str,
|
||||
guild_id: int,
|
||||
creator_id: int,
|
||||
starts: datetime,
|
||||
ends: datetime,
|
||||
thumbnail_id: str | None,
|
||||
cache: Optional[Cache] = None,
|
||||
cls,
|
||||
name: str,
|
||||
guild_id: int,
|
||||
creator_id: int,
|
||||
starts: datetime,
|
||||
ends: datetime,
|
||||
thumbnail_id: str | None,
|
||||
cache: Optional[Cache] = None,
|
||||
) -> "PycordEvent":
|
||||
db_entry: Dict[str, Any] = {
|
||||
"name": name,
|
||||
"guild_id": guild_id,
|
||||
"created": datetime.now(tz=timezone.utc),
|
||||
"ended": None,
|
||||
"creator_id": creator_id,
|
||||
"starts": starts,
|
||||
"ends": ends,
|
||||
@@ -179,6 +196,7 @@ class PycordEvent:
|
||||
"name": self.name,
|
||||
"guild_id": self.guild_id,
|
||||
"created": self.created,
|
||||
"ended": self.ended,
|
||||
"creator_id": self.creator_id,
|
||||
"starts": self.starts,
|
||||
"ends": self.ends,
|
||||
@@ -192,6 +210,7 @@ class PycordEvent:
|
||||
"name": None,
|
||||
"guild_id": None,
|
||||
"created": None,
|
||||
"ended": None,
|
||||
"creator_id": None,
|
||||
"starts": None,
|
||||
"ends": None,
|
||||
|
Reference in New Issue
Block a user