Skip to content

Commit ba9c477

Browse files
committed
Remove legacy modmail endpoints
1 parent 13907cb commit ba9c477

8 files changed

Lines changed: 5 additions & 559 deletions

File tree

CHANGES.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Unreleased
2828
- Remove ``Comment.gild``, ``Redditor.gild``, and ``Submission.gild`` methods.
2929
- Remove ``Redditor.gilded`` and ``Subreddit.gilded`` methods.
3030
- Remove ``Redditor.gildings`` method.
31+
- Remove ``Subreddit.mod.inbox``, ``Subreddit.mod.unread``, and
32+
``Subreddit.mod.stream.unread`` methods.
3133
- Remove ``Subreddits.gold`` method.
3234
- Remove :class:`.Reddit` keyword argument ``token_manager`` and all associated token
3335
managers.
@@ -524,8 +526,8 @@ Unreleased
524526
:meth:`.SubredditModeration.spam`
525527
- Add :meth:`~.SubredditModerationStream.unmoderated` to allow streaming of
526528
:meth:`.SubredditModeration.unmoderated`
527-
- Add :meth:`~.SubredditModerationStream.unread` to allow streaming of
528-
:meth:`.SubredditModeration.unread`
529+
- Add ``SubredditModerationStream.unread`` to allow streaming of
530+
``SubredditModeration.unread``
529531
- Parameter ``exclude_before`` to :func:`.stream_generator` to allow
530532
:meth:`~.SubredditModerationStream.modmail_conversations` to work
531533
- Parameters ``allowable_content`` and ``max_emojis`` to
@@ -1158,7 +1160,7 @@ to help with updating your code to PRAW 4. If you require additional help please
11581160
``praw.models.reddit.submission.SubmissionModeration.unlock`` to change a Submission's
11591161
lock state.
11601162
- :meth:`.SubredditFlairTemplates.delete` to delete a single flair template.
1161-
- :meth:`.SubredditModeration.unread` to iterate over unread moderation messages.
1163+
- ``SubredditModeration.unread`` to iterate over unread moderation messages.
11621164
- :meth:`.ModeratorRelationship.invite` to invite a moderator to a subreddit.
11631165
- :meth:`.ModeratorRelationship.update` to update a moderator's permissions.
11641166
- :meth:`.ModeratorRelationship.update_invite` to update an invited moderator's

praw/endpoints.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,6 @@
109109
"mod_notes": "api/mod/notes",
110110
"mod_notes_bulk": "api/mod/notes/recent",
111111
"moderated": "user/{user}/moderated_subreddits/",
112-
"moderator_messages": "r/{subreddit}/message/moderator/",
113-
"moderator_unread": "r/{subreddit}/message/moderator/unread/",
114112
"modmail_archive": "api/mod/conversations/{id}/archive",
115113
"modmail_bulk_read": "api/mod/conversations/bulk/read",
116114
"modmail_conversation": "api/mod/conversations/{id}",

praw/exceptions.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,6 @@ def __init__(self, message: str):
150150
"""Initialize a :class:`.WebSocketException` instance.
151151
152152
:param message: The exception message.
153-
:param exception: The exception thrown by the websocket library.
154-
155-
.. note::
156-
157-
This parameter is deprecated. It will be removed in PRAW 8.0.
158153
159154
"""
160155
super().__init__(message)

praw/models/reddit/subreddit.py

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from pathlib import Path
1111
from typing import TYPE_CHECKING, Any
1212
from urllib.parse import urljoin
13-
from warnings import warn
1413

1514
import websocket
1615
from defusedxml import ElementTree
@@ -854,45 +853,6 @@ def edited(
854853
**generator_kwargs,
855854
)
856855

857-
def inbox(self, **generator_kwargs: Any) -> Iterator[praw.models.SubredditMessage]:
858-
"""Return a :class:`.ListingGenerator` for moderator messages.
859-
860-
.. warning::
861-
862-
Legacy modmail is being deprecated in June 2021. Please see
863-
https://www.reddit.com/r/modnews/comments/mar9ha/even_more_modmail_improvements/
864-
for more info.
865-
866-
Additional keyword arguments are passed in the initialization of
867-
:class:`.ListingGenerator`.
868-
869-
.. seealso::
870-
871-
:meth:`.unread` for unread moderator messages.
872-
873-
To print the last 5 moderator mail messages and their replies, try:
874-
875-
.. code-block:: python
876-
877-
for message in reddit.subreddit("mod").mod.inbox(limit=5):
878-
print(f"From: {message.author}, Body: {message.body}")
879-
for reply in message.replies:
880-
print(f"From: {reply.author}, Body: {reply.body}")
881-
882-
"""
883-
warn(
884-
"Legacy modmail is being deprecated in June 2021. Please see"
885-
" https://www.reddit.com/r/modnews/comments/mar9ha/even_more_modmail_improvements/"
886-
" for more info.",
887-
category=DeprecationWarning,
888-
stacklevel=3,
889-
)
890-
return ListingGenerator(
891-
self.subreddit._reddit,
892-
API_PATH["moderator_messages"].format(subreddit=self.subreddit),
893-
**generator_kwargs,
894-
)
895-
896856
def log(
897857
self,
898858
*,
@@ -1029,43 +989,6 @@ def unmoderated(self, **generator_kwargs: Any) -> Iterator[praw.models.Submissio
1029989
**generator_kwargs,
1030990
)
1031991

1032-
def unread(self, **generator_kwargs: Any) -> Iterator[praw.models.SubredditMessage]:
1033-
"""Return a :class:`.ListingGenerator` for unread moderator messages.
1034-
1035-
.. warning::
1036-
1037-
Legacy modmail is being deprecated in June 2021. Please see
1038-
https://www.reddit.com/r/modnews/comments/mar9ha/even_more_modmail_improvements/
1039-
for more info.
1040-
1041-
Additional keyword arguments are passed in the initialization of
1042-
:class:`.ListingGenerator`.
1043-
1044-
.. seealso::
1045-
1046-
:meth:`.inbox` for all messages.
1047-
1048-
To print the mail in the unread modmail queue try:
1049-
1050-
.. code-block:: python
1051-
1052-
for message in reddit.subreddit("mod").mod.unread():
1053-
print(f"From: {message.author}, To: {message.dest}")
1054-
1055-
"""
1056-
warn(
1057-
"Legacy modmail is being deprecated in June 2021. Please see"
1058-
" https://www.reddit.com/r/modnews/comments/mar9ha/even_more_modmail_improvements/"
1059-
" for more info.",
1060-
category=DeprecationWarning,
1061-
stacklevel=3,
1062-
)
1063-
return ListingGenerator(
1064-
self.subreddit._reddit,
1065-
API_PATH["moderator_unread"].format(subreddit=self.subreddit),
1066-
**generator_kwargs,
1067-
)
1068-
1069992
def update(self, **settings: str | int | bool) -> dict[str, str | int | bool]:
1070993
"""Update the :class:`.Subreddit`'s settings.
1071994
@@ -1356,25 +1279,6 @@ def unmoderated(self, **stream_options: Any) -> Generator[praw.models.Submission
13561279
"""
13571280
return stream_generator(self.subreddit.mod.unmoderated, **stream_options)
13581281

1359-
def unread(self, **stream_options: Any) -> Generator[praw.models.SubredditMessage, None, None]:
1360-
"""Yield unread old modmail messages as they become available.
1361-
1362-
Keyword arguments are passed to :func:`.stream_generator`.
1363-
1364-
.. seealso::
1365-
1366-
:meth:`.SubredditModeration.inbox` for all messages.
1367-
1368-
To print new mail in the unread modmail queue try:
1369-
1370-
.. code-block:: python
1371-
1372-
for message in reddit.subreddit("mod").mod.stream.unread():
1373-
print(f"From: {message.author}, To: {message.dest}")
1374-
1375-
"""
1376-
return stream_generator(self.subreddit.mod.unread, **stream_options)
1377-
13781282

13791283
class SubredditQuarantine:
13801284
"""Provides subreddit quarantine related methods.

tests/integration/cassettes/TestSubredditModeration.test_inbox.json

Lines changed: 0 additions & 102 deletions
This file was deleted.

tests/integration/cassettes/TestSubredditModeration.test_unread.json

Lines changed: 0 additions & 102 deletions
This file was deleted.

tests/integration/cassettes/TestSubredditModerationStreams.test_unread.json

Lines changed: 0 additions & 224 deletions
This file was deleted.

tests/integration/models/reddit/test_subreddit.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -459,15 +459,6 @@ def test_edited__only_submissions(self, reddit):
459459
count += 1
460460
assert count > 0
461461

462-
def test_inbox(self, reddit):
463-
reddit.read_only = False
464-
count = 0
465-
subreddit = reddit.subreddit("all")
466-
for item in subreddit.mod.inbox():
467-
assert isinstance(item, SubredditMessage)
468-
count += 1
469-
assert count == 100
470-
471462
def test_log(self, reddit):
472463
reddit.read_only = False
473464
count = 0
@@ -601,15 +592,6 @@ def test_unmoderated(self, reddit):
601592
count += 1
602593
assert count > 0
603594

604-
def test_unread(self, reddit):
605-
reddit.read_only = False
606-
count = 0
607-
subreddit = reddit.subreddit("all")
608-
for item in subreddit.mod.unread():
609-
assert isinstance(item, SubredditMessage)
610-
count += 1
611-
assert count > 0
612-
613595
def test_update(self, reddit):
614596
reddit.read_only = False
615597
subreddit = reddit.subreddit(pytest.placeholders.test_subreddit)
@@ -680,13 +662,6 @@ def test_unmoderated(self, reddit):
680662
for i in range(10):
681663
assert isinstance(next(generator), (Comment, Submission))
682664

683-
def test_unread(self, reddit):
684-
reddit.read_only = False
685-
subreddit = reddit.subreddit("mod")
686-
generator = subreddit.mod.stream.unread()
687-
for i in range(2):
688-
assert isinstance(next(generator), SubredditMessage)
689-
690665

691666
class TestSubredditModmail(IntegrationTest):
692667
def test_bulk_read(self, reddit):

0 commit comments

Comments
 (0)