Skip to content

Commit efa9de8

Browse files
authored
Merge branch 'master' into master
Signed-off-by: Readeem <[email protected]>
2 parents ce26f36 + 7b617da commit efa9de8

File tree

7 files changed

+57
-13
lines changed

7 files changed

+57
-13
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ These changes are available on the `master` branch, but have not yet been releas
2020
- Fixed `default_sort_order` variable type being `int` instead of typehinted `SortOrder` enum in `ForumChannel` class.
2121
([#2500](https://github.com/Pycord-Development/pycord/pull/2500))
2222

23+
### Changed
24+
25+
- Renamed `cover` property of `ScheduledEvent` and `cover` argument of
26+
`ScheduledEvent.edit` to `image`.
27+
([#2496](https://github.com/Pycord-Development/pycord/pull/2496))
28+
2329
## [2.6.0] - 2024-07-09
2430

2531
### Added

discord/asset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ def _from_user_banner(cls, state, user_id: int, banner_hash: str) -> Asset:
277277
)
278278

279279
@classmethod
280-
def _from_scheduled_event_cover(
280+
def _from_scheduled_event_image(
281281
cls, state, event_id: int, cover_hash: str
282282
) -> Asset:
283283
return cls(

discord/audit_logs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ def _transform_avatar(entry: AuditLogEntry, data: str | None) -> Asset | None:
153153
return Asset._from_avatar(entry._state, entry._target_id, data) # type: ignore
154154

155155

156-
def _transform_scheduled_event_cover(
156+
def _transform_scheduled_event_image(
157157
entry: AuditLogEntry, data: str | None
158158
) -> Asset | None:
159159
if data is None:
160160
return None
161-
return Asset._from_scheduled_event_cover(entry._state, entry._target_id, data)
161+
return Asset._from_scheduled_event_image(entry._state, entry._target_id, data)
162162

163163

164164
def _guild_hash_transformer(
@@ -274,7 +274,7 @@ class AuditLogChanges:
274274
_enum_transformer(enums.ScheduledEventLocationType),
275275
),
276276
"command_id": ("command_id", _transform_snowflake),
277-
"image_hash": ("cover", _transform_scheduled_event_cover),
277+
"image_hash": ("image", _transform_scheduled_event_image),
278278
"trigger_type": (None, _enum_transformer(enums.AutoModTriggerType)),
279279
"event_type": (None, _enum_transformer(enums.AutoModEventType)),
280280
"actions": (None, _transform_actions),

discord/scheduled_events.py

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@
3535
ScheduledEventStatus,
3636
try_enum,
3737
)
38-
from .errors import ValidationError
38+
from .errors import InvalidArgument, ValidationError
3939
from .iterators import ScheduledEventSubscribersIterator
4040
from .mixins import Hashable
4141
from .object import Object
42+
from .utils import warn_deprecated
4243

4344
__all__ = (
4445
"ScheduledEvent",
@@ -180,7 +181,7 @@ class ScheduledEvent(Hashable):
180181
"location",
181182
"guild",
182183
"_state",
183-
"_cover",
184+
"_image",
184185
"subscriber_count",
185186
)
186187

@@ -198,7 +199,7 @@ def __init__(
198199
self.guild: Guild = guild
199200
self.name: str = data.get("name")
200201
self.description: str | None = data.get("description", None)
201-
self._cover: str | None = data.get("image", None)
202+
self._image: str | None = data.get("image", None)
202203
self.start_time: datetime.datetime = datetime.datetime.fromisoformat(
203204
data.get("scheduled_start_time")
204205
)
@@ -254,13 +255,24 @@ def url(self) -> str:
254255

255256
@property
256257
def cover(self) -> Asset | None:
258+
"""
259+
Returns the scheduled event cover image asset, if available.
260+
261+
.. deprecated:: 2.7
262+
Use the :attr:`image` property instead.
263+
"""
264+
warn_deprecated("cover", "image", "2.7")
265+
return self.image
266+
267+
@property
268+
def image(self) -> Asset | None:
257269
"""Returns the scheduled event cover image asset, if available."""
258-
if self._cover is None:
270+
if self._image is None:
259271
return None
260-
return Asset._from_scheduled_event_cover(
272+
return Asset._from_scheduled_event_image(
261273
self._state,
262274
self.id,
263-
self._cover,
275+
self._image,
264276
)
265277

266278
async def edit(
@@ -276,6 +288,7 @@ async def edit(
276288
start_time: datetime.datetime = MISSING,
277289
end_time: datetime.datetime = MISSING,
278290
cover: bytes | None = MISSING,
291+
image: bytes | None = MISSING,
279292
privacy_level: ScheduledEventPrivacyLevel = ScheduledEventPrivacyLevel.guild_only,
280293
) -> ScheduledEvent | None:
281294
"""|coro|
@@ -310,9 +323,14 @@ async def edit(
310323
so there is no need to change this parameter.
311324
reason: Optional[:class:`str`]
312325
The reason to show in the audit log.
326+
image: Optional[:class:`bytes`]
327+
The cover image of the scheduled event.
313328
cover: Optional[:class:`bytes`]
314329
The cover image of the scheduled event.
315330
331+
.. deprecated:: 2.7
332+
Use the `image` argument instead.
333+
316334
Returns
317335
-------
318336
Optional[:class:`.ScheduledEvent`]
@@ -341,8 +359,19 @@ async def edit(
341359
payload["privacy_level"] = int(privacy_level)
342360

343361
if cover is not MISSING:
344-
if cover is not None:
345-
payload["image"] = utils._bytes_to_base64_data(cover)
362+
warn_deprecated("cover", "image", "2.7")
363+
if image is not MISSING:
364+
raise InvalidArgument(
365+
"cannot pass both `image` and `cover` to `ScheduledEvent.edit`"
366+
)
367+
else:
368+
image = cover
369+
370+
if image is not MISSING:
371+
if image is None:
372+
payload["image"] = None
373+
else:
374+
payload["image"] = utils._bytes_to_base64_data(image)
346375

347376
if location is not MISSING:
348377
if not isinstance(

docs/api/audit_logs.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,5 +524,11 @@ this goal, it must make use of a couple of data classes that aid in this goal.
524524

525525
:type: :class:`str`
526526

527+
.. attribute:: image
528+
529+
The cover image of a :class:`ScheduledEvent`.
530+
531+
:type: :class:`str`
532+
527533
.. this is currently missing the following keys: reason and application_id
528534
I'm not sure how to about porting these

docs/api/enums.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,6 +1413,7 @@ of :class:`enum.Enum`.
14131413
- :attr:`~discord.ScheduledEvent.location`
14141414
- :attr:`~discord.ScheduledEvent.status`
14151415
- :attr:`~discord.ScheduledEventLocation.type`
1416+
- :attr:`~discord.ScheduledEvent.image`
14161417

14171418
.. versionadded:: 2.0
14181419

@@ -1433,6 +1434,7 @@ of :class:`enum.Enum`.
14331434
- :attr:`~discord.ScheduledEvent.location`
14341435
- :attr:`~discord.ScheduledEvent.status`
14351436
- :attr:`~discord.ScheduledEventLocation.type`
1437+
- :attr:`~discord.ScheduledEvent.image`
14361438

14371439
.. versionadded:: 2.0
14381440

@@ -1453,6 +1455,7 @@ of :class:`enum.Enum`.
14531455
- :attr:`~discord.ScheduledEvent.location`
14541456
- :attr:`~discord.ScheduledEvent.status`
14551457
- :attr:`~discord.ScheduledEventLocation.type`
1458+
- :attr:`~discord.ScheduledEvent.image`
14561459

14571460
.. versionadded:: 2.0
14581461

requirements/dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pytest~=8.2.2
44
pytest-asyncio~=0.23.3
55
# pytest-order~=1.0.1
66
mypy~=1.10.1
7-
coverage~=7.5
7+
coverage~=7.6
88
pre-commit==3.5.0
99
codespell==2.3.0
1010
bandit==1.7.9

0 commit comments

Comments
 (0)