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):
... # 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):
"""Represents a scheduled event in a guild.
@ -289,7 +296,11 @@ class ScheduledEvent(Hashable):
self._cover_image: Optional[str] = data.get('image', None)
self.user_count: int = data.get('user_count', 0)
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')
self.creator: Optional[User] = self._state.store_user(creator) if creator else None
@ -455,7 +466,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ...,
image: bytes = ...,
reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ...,
recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent:
...
@ -473,7 +484,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ...,
image: bytes = ...,
reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ...,
recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent:
...
@ -491,7 +502,7 @@ class ScheduledEvent(Hashable):
image: bytes = ...,
location: str,
reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ...,
recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent:
...
@ -508,7 +519,7 @@ class ScheduledEvent(Hashable):
status: EventStatus = ...,
image: bytes = ...,
reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ...,
recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent:
...
@ -525,7 +536,7 @@ class ScheduledEvent(Hashable):
image: bytes = ...,
location: str,
reason: Optional[str] = ...,
recurrence: Optional[ScheduledEventRecurrence] = ...,
recurrence: Optional[ScheduledEventRecurrenceRule] = ...,
) -> ScheduledEvent:
...
@ -543,7 +554,7 @@ class ScheduledEvent(Hashable):
image: bytes = MISSING,
location: str = MISSING,
reason: Optional[str] = None,
recurrence_rule: Optional[ScheduledEventRecurrence] = MISSING,
recurrence_rule: Optional[ScheduledEventRecurrenceRule] = MISSING,
) -> ScheduledEvent:
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.
"""
from typing import List, Literal, Optional, TypedDict, Union, Dict
from typing import List, Literal, Optional, TypedDict, Union
from typing_extensions import NotRequired
from .snowflake import Snowflake
@ -36,24 +36,18 @@ class _NWeekday(TypedDict):
n: int
day: Literal[0, 1, 2, 3, 4, 5, 6]
class GuildScheduledEventRecurrence(TypedDict):
class ScheduledEventRecurrenceRule(TypedDict):
start: str
end: Optional[str]
frequency: int
interval: int
by_weekday: Optional[List[Literal[0, 1, 2, 3, 4, 5, 6]]] # NOTE: 0 = monday; 6 = sunday
by_n_weekday: Optional[List[_NWeekday]]
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
frequency: int
count: None # no values for this, yet
by_year_day: Optional[List[int]]
count: Optional[int] # maybe?
# NOTE: for this ^ enum, it is recommended to use "calendar" module constants: MONDAY; TUESDAY; WEDNESDAY; etc
# as they follow these patterns and is a built-in module.
by_weekday: Optional[List[int]]
by_month_day: Optional[List[int]]
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):
id: Snowflake
@ -64,8 +58,8 @@ class _BaseGuildScheduledEvent(TypedDict):
privacy_level: PrivacyLevel
status: EventStatus
auto_start: bool
guild_scheduled_events_exceptions: List # Didn't found items in the list yet
recurrence_rule: Optional[GuildScheduledEventRecurrence]
guild_scheduled_events_exceptions: List[int]
recurrence_rule: Optional[ScheduledEventRecurrenceRule]
sku_ids: List[Snowflake]
creator_id: NotRequired[Optional[Snowflake]]
description: NotRequired[Optional[str]]

Loading…
Cancel
Save