Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
43227c4
at first i only wanted to add cached members...
Lumabots Dec 9, 2025
fe47678
correcting some bs, like some unknow type added for i dont know what …
Lumabots Dec 9, 2025
fff9b3b
use discord variable name, try an implementation for audit logs
Lumabots Dec 9, 2025
9e6a986
feat: add recurrence support for scheduled events with new enums and …
Lumabots Dec 9, 2025
7b2c31f
refactor: remove ScheduledEventLocation class and related attributes …
Lumabots Dec 9, 2025
5a2581e
feat: enhance scheduled event recurrence with validation and serializ…
Lumabots Dec 9, 2025
973a3d2
Merge branch 'master' into on_scheduled_event_delete
Lumabots Dec 9, 2025
9d1d5d7
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 9, 2025
8c85a05
revert breaking change
Lumabots Dec 10, 2025
40d79b6
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 10, 2025
b5dc3e9
Update discord/enums.py
Lumabots Dec 12, 2025
405f2c6
Merge branch 'master' into on_scheduled_event_delete
Lumabots Dec 12, 2025
13420ce
paillat comment
Lumabots Dec 12, 2025
469a7b5
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 12, 2025
a2f09fe
feat: add overloads for ScheduledEventRecurrenceRule constructor
Lumabots Dec 12, 2025
7e42577
Merge branch 'master' into on_scheduled_event_delete
Lumabots Dec 29, 2025
1c50c9e
Merge branch 'master' into on_scheduled_event_delete
Lumabots Jan 16, 2026
2ff8daf
Merge branch 'master' into on_scheduled_event_delete
Lumabots Jan 16, 2026
6dfd511
refactor: 🗑️ Remove scheduled event recurrence classes and related at…
Lumabots Jan 16, 2026
7fdf52e
Update scheduled_events.py
Lumabots Jan 16, 2026
bafd549
refactor: 🗑️ Change _cached_subscribers from dict to set for improved…
Lumabots Jan 16, 2026
8f887d3
paillat comment
Lumabots Jan 16, 2026
6772e09
Update discord/enums.py
Lumabots Jan 16, 2026
79194b5
refactor: 🗑️ Update location type references and deprecate 'cover' pa…
Lumabots Jan 16, 2026
70c37cb
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 16, 2026
2800a08
refactor: 🗑️ Remove unnecessary calls to _add_scheduled_event in Conn…
Lumabots Jan 16, 2026
b9ddb02
refactor: 🗑️ Enhance create_scheduled_event method with overloads and…
Lumabots Jan 16, 2026
7b4f7f5
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 16, 2026
44fbd76
Merge branch 'master' into on_scheduled_event_delete
Lumabots Feb 15, 2026
a548783
reverse
Lumabots Feb 15, 2026
a594faa
feat: Add entity metadata transformation for scheduled events in audi…
Lumabots Feb 15, 2026
294dc39
Merge branch 'master' into on_scheduled_event_delete
Paillat-dev Feb 28, 2026
ef960ff
refactor: Update deprecated property decorators to use typing_extensions
Lumabots Mar 2, 2026
8c4c395
fix: Update type hint for _transform_entity_metadata to specify dict[…
Lumabots Mar 2, 2026
b1bbf52
Merge branch 'master' into on_scheduled_event_delete
Lumabots Mar 2, 2026
ddd0c0e
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 2, 2026
28b4682
fix: improve docstring wording of display methods (#3120)
Lee4test Apr 12, 2026
c78136d
fix: Update privacy_level default to MISSING and add deprecation warning
Lumabots Apr 13, 2026
7022e67
Merge branch 'master' into on_scheduled_event_delete
Paillat-dev Apr 13, 2026
b86cd07
style(pre-commit): auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 13, 2026
124169b
Merge branch 'master' into on_scheduled_event_delete
Paillat-dev Apr 17, 2026
8cd3495
feat: Misc changes and fixes
Paillat-dev Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 38 additions & 33 deletions discord/audit_logs.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
from .guild import Guild
from .member import Member
from .role import Role
from .scheduled_events import ScheduledEvent
from .scheduled_events import ScheduledEvent, ScheduledEventEntityMetadata
from .stage_instance import StageInstance
from .state import ConnectionState
from .sticker import GuildSticker
Expand Down Expand Up @@ -217,6 +217,20 @@ def _transform_communication_disabled_until(
return None


def _transform_entity_metadata(
entry: AuditLogEntry, data: dict[str, str] | str | None
) -> ScheduledEventEntityMetadata | None:
from .scheduled_events import ScheduledEventEntityMetadata

if data is None:
return None
if isinstance(data, dict):
location = data.get("location")
else:
location = data
return ScheduledEventEntityMetadata(location=location)


class AuditLogDiff:
def __len__(self) -> int:
return len(self.__dict__)
Expand Down Expand Up @@ -271,6 +285,8 @@ class AuditLogChanges:
"default_notifications",
_enum_transformer(enums.NotificationLevel),
),
"entity_metadata": (None, _transform_entity_metadata),
"location": (None, _transform_entity_metadata),
Comment thread
Lumabots marked this conversation as resolved.
"rtc_region": (None, _enum_transformer(enums.VoiceRegion)),
"video_quality_mode": (None, _enum_transformer(enums.VideoQualityMode)),
"privacy_level": (None, _enum_transformer(enums.StagePrivacyLevel)),
Expand All @@ -279,7 +295,7 @@ class AuditLogChanges:
"status": (None, _enum_transformer(enums.ScheduledEventStatus)),
"entity_type": (
"location_type",
_enum_transformer(enums.ScheduledEventLocationType),
_enum_transformer(enums.ScheduledEventEntityType),
),
"command_id": ("command_id", _transform_snowflake),
"image_hash": ("image", _transform_scheduled_event_image),
Expand Down Expand Up @@ -318,7 +334,11 @@ def __init__(
"$add_allow_list",
]:
self._handle_trigger_metadata(
self.before, self.after, entry, elem["new_value"], attr # type: ignore
self.before,
self.after,
entry,
elem["new_value"],
attr, # type: ignore
)
continue
elif attr in [
Expand All @@ -327,7 +347,11 @@ def __init__(
"$remove_allow_list",
]:
self._handle_trigger_metadata(
self.after, self.before, entry, elem["new_value"], attr # type: ignore
self.after,
self.before,
entry,
elem["new_value"],
attr, # type: ignore
)
continue

Expand All @@ -349,21 +373,6 @@ def __init__(
if transformer:
before = transformer(entry, before)

if attr == "location" and hasattr(self.before, "location_type"):
from .scheduled_events import ScheduledEventLocation

if (
self.before.location_type
is enums.ScheduledEventLocationType.external
):
before = ScheduledEventLocation(state=state, value=before)
elif hasattr(self.before, "channel"):
before = ScheduledEventLocation(
state=state, value=self.before.channel
)

setattr(self.before, attr, before)

try:
after = elem["new_value"]
except KeyError:
Expand All @@ -372,20 +381,11 @@ def __init__(
if transformer:
after = transformer(entry, after)

if attr == "location" and hasattr(self.after, "location_type"):
from .scheduled_events import ScheduledEventLocation

if (
self.after.location_type
is enums.ScheduledEventLocationType.external
):
after = ScheduledEventLocation(state=state, value=after)
elif hasattr(self.after, "channel"):
after = ScheduledEventLocation(
state=state, value=self.after.channel
)

setattr(self.before, attr, before)
setattr(self.after, attr, after)
if attr == "location":
setattr(self.after, "entity_metadata", after)
setattr(self.before, "entity_metadata", before)

# add an alias
if hasattr(self.after, "colour"):
Expand Down Expand Up @@ -691,7 +691,12 @@ def _convert_target_invite(self, target_id: int) -> Invite:
"uses": changeset.uses,
}

obj = Invite(state=self._state, data=fake_payload, guild=self.guild, channel=changeset.channel) # type: ignore
obj = Invite(
state=self._state,
data=fake_payload,
guild=self.guild,
channel=changeset.channel,
) # type: ignore
try:
obj.inviter = changeset.inviter
except AttributeError:
Expand Down
13 changes: 11 additions & 2 deletions discord/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
"EmbeddedActivity",
"ScheduledEventStatus",
"ScheduledEventPrivacyLevel",
"ScheduledEventEntityType",
"ScheduledEventLocationType",
"InputTextStyle",
"SlashCommandOptionType",
Expand Down Expand Up @@ -970,13 +971,21 @@ def __int__(self):
return self.value


class ScheduledEventLocationType(Enum):
"""Scheduled event location type"""
class ScheduledEventEntityType(Enum):
"""Scheduled event entity type"""

stage_instance = 1
voice = 2
external = 3

def __int__(self):
return self.value


# TODO(Paillat-dev): Add @deprecated notice using warnings.deprecated in relevant PR
class ScheduledEventLocationType(ScheduledEventEntityType):
Comment thread
Lumabots marked this conversation as resolved.
Comment thread
Lumabots marked this conversation as resolved.
"""Scheduled event location type (deprecated alias for :class:`ScheduledEventEntityType`)"""


class AutoModTriggerType(Enum):
"""Automod trigger type"""
Expand Down
Loading
Loading