Browse Source

........

pull/9685/head
Developer Anonymous 11 months ago
parent
commit
cd5cbc615a
  1. 25
      discord/scheduled_event.py
  2. 28
      discord/types/scheduled_event.py

25
discord/scheduled_event.py

@ -193,6 +193,13 @@ class ScheduledEventRecurrenceRule:
def edit(self): def edit(self):
... # TODO: finish this thingy ... # TODO: finish this thingy
@classmethod
def from_dict(cls, data: GuildScheduledEventRecurrencePayload, /) -> ScheduledEventRecurrenceRule:
... # TODO: finish this ALSO
def to_dict(self) -> GuildScheduledEventRecurrencePayload:
... # TODO: guessed it, finish this also
class ScheduledEvent(Hashable): class ScheduledEvent(Hashable):
"""Represents a scheduled event in a guild. """Represents a scheduled event in a guild.
@ -289,7 +296,11 @@ class ScheduledEvent(Hashable):
self._cover_image: Optional[str] = data.get('image', None) self._cover_image: Optional[str] = data.get('image', None)
self.user_count: int = data.get('user_count', 0) self.user_count: int = data.get('user_count', 0)
self.creator_id: Optional[int] = _get_as_snowflake(data, 'creator_id') self.creator_id: Optional[int] = _get_as_snowflake(data, 'creator_id')
self.recurrence: Optional[ScheduledEventRecurrence] = ScheduledEventRecurrence.from_dict(data.get('recurrence_rule')) if data.get('recurrence_rule', None) is not None else None
try:
self.recurrence: Optional[ScheduledEventRecurrenceRule] = ScheduledEventRecurrenceRule.from_dict(data['recurrence_rule'])
except KeyError:
self.recurrence = None
creator = data.get('creator') creator = data.get('creator')
self.creator: Optional[User] = self._state.store_user(creator) if creator else None self.creator: Optional[User] = self._state.store_user(creator) if creator else None
@ -455,7 +466,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ..., status: EventStatus = ...,
image: bytes = ..., image: bytes = ...,
reason: Optional[str] = ..., reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ..., recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent: ) -> ScheduledEvent:
... ...
@ -473,7 +484,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ..., status: EventStatus = ...,
image: bytes = ..., image: bytes = ...,
reason: Optional[str] = ..., reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ..., recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent: ) -> ScheduledEvent:
... ...
@ -491,7 +502,7 @@ class ScheduledEvent(Hashable):
image: bytes = ..., image: bytes = ...,
location: str, location: str,
reason: Optional[str] = ..., reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ..., recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent: ) -> ScheduledEvent:
... ...
@ -508,7 +519,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ..., status: EventStatus = ...,
image: bytes = ..., image: bytes = ...,
reason: Optional[str] = ..., reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ..., recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent: ) -> ScheduledEvent:
... ...
@ -525,7 +536,7 @@ class ScheduledEvent(Hashable):
image: bytes = ..., image: bytes = ...,
location: str, location: str,
reason: Optional[str] = ..., reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ..., recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent: ) -> ScheduledEvent:
... ...
@ -543,7 +554,7 @@ class ScheduledEvent(Hashable):
image: bytes = MISSING, image: bytes = MISSING,
location: str = MISSING, location: str = MISSING,
reason: Optional[str] = None, reason: Optional[str] = None,
recurrence_rule: Optional[ScheduledEventRecurrence] = MISSING, recurrence_rule: Optional[ScheduledEventRecurrenceRule] = MISSING,
) -> ScheduledEvent: ) -> ScheduledEvent:
r"""|coro| r"""|coro|

28
discord/types/scheduled_event.py

@ -22,7 +22,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
""" """
from typing import List, Literal, Optional, TypedDict, Union, Dict from typing import List, Literal, Optional, TypedDict, Union
from typing_extensions import NotRequired from typing_extensions import NotRequired
from .snowflake import Snowflake from .snowflake import Snowflake
@ -36,24 +36,18 @@ class _NWeekday(TypedDict):
n: int n: int
day: Literal[0, 1, 2, 3, 4, 5, 6] day: Literal[0, 1, 2, 3, 4, 5, 6]
class GuildScheduledEventRecurrence(TypedDict):
class ScheduledEventRecurrenceRule(TypedDict):
start: str start: str
end: Optional[str]
frequency: int
interval: int interval: int
by_weekday: Optional[List[Literal[0, 1, 2, 3, 4, 5, 6]]] # NOTE: 0 = monday; 6 = sunday frequency: int
by_n_weekday: Optional[List[_NWeekday]] count: None # no values for this, yet
by_month: Optional[List[Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]
by_month_day: Optional[List[int]] # NOTE: day range between 1 and 31
by_year_day: Optional[List[int]] by_year_day: Optional[List[int]]
count: Optional[int] # maybe? by_weekday: Optional[List[int]]
# NOTE: for this ^ enum, it is recommended to use "calendar" module constants: MONDAY; TUESDAY; WEDNESDAY; etc by_month_day: Optional[List[int]]
# as they follow these patterns and is a built-in module. by_month: Optional[List[int]]
by_n_weekday: NotRequired[List[_NWeekday]]
class GuildScheduledEventExceptionCounts(TypedDict):
guild_scheduled_event_count: int
guild_scheduled_event_exception_counts: Dict[Snowflake, int]
# NOTE: This class doesn't represent any of the user counts or the 'count' param in recurrence
class _BaseGuildScheduledEvent(TypedDict): class _BaseGuildScheduledEvent(TypedDict):
id: Snowflake id: Snowflake
@ -64,8 +58,8 @@ class _BaseGuildScheduledEvent(TypedDict):
privacy_level: PrivacyLevel privacy_level: PrivacyLevel
status: EventStatus status: EventStatus
auto_start: bool auto_start: bool
guild_scheduled_events_exceptions: List # Didn't found items in the list yet guild_scheduled_events_exceptions: List[int]
recurrence_rule: Optional[GuildScheduledEventRecurrence] recurrence_rule: Optional[ScheduledEventRecurrenceRule]
sku_ids: List[Snowflake] sku_ids: List[Snowflake]
creator_id: NotRequired[Optional[Snowflake]] creator_id: NotRequired[Optional[Snowflake]]
description: NotRequired[Optional[str]] description: NotRequired[Optional[str]]

Loading…
Cancel
Save