Modmail¶
-
class
praw.models.reddit.subreddit.
Modmail
(subreddit)¶ Provides modmail functions for a subreddit.
-
__call__
(id=None, mark_read=False)¶ Return an individual conversation.
Parameters: - id – A reddit base36 conversation ID, e.g.,
2gmz
. - mark_read – If True, conversation is marked as read (default: False).
Example:
reddit.subreddit('redditdev').modmail('2gmz', mark_read=True)
- id – A reddit base36 conversation ID, e.g.,
-
__init__
(subreddit)¶ Construct an instance of the Modmail object.
-
bulk_read
(other_subreddits=None, state=None)¶ Mark conversations for subreddit(s) as read.
Due to server-side restrictions, ‘all’ is not a valid subreddit for this method. Instead, use
subreddits()
to get a list of subreddits using the new modmail.Parameters: - other_subreddits – A list of .Subreddit instances for which to mark conversations (default: None).
- state – Can be one of: all, archived, highlighted, inprogress, mod, new, notifications, (default: all).
Returns: A list of
ModmailConversation
instances that were marked read.For example, to mark all notifications for a subreddit as read:
subreddit = reddit.subreddit('redditdev') subreddit.modmail.bulk_read(state='notifications')
-
conversations
(after=None, limit=None, other_subreddits=None, sort=None, state=None)¶ Generate
ModmailConversation
objects for subreddit(s).Parameters: - after – A base36 modmail conversation id. When provided, the listing begins after this conversation (default: None).
- limit – The maximum number of conversations to fetch. If None, the server-side default is 25 at the time of writing (default: None).
- other_subreddits – A list of .Subreddit instances for which to fetch conversations (default: None).
- sort – Can be one of: mod, recent, unread, user (default: recent).
- state – Can be one of: all, archived, highlighted, inprogress, mod, new, notifications, (default: all).
Example:
conversations = reddit.subreddit('all').conversations(state='mod')
-
create
(subject, body, recipient, author_hidden=False)¶ Create a new modmail conversation.
Parameters: - subject – The message subject. Cannot be empty.
- body – The message body. Cannot be empty.
- recipient – The recipient; a username or an instance of
Redditor
. - author_hidden – When True, author is hidden from non-moderators (default: False).
Returns: A .ModmailConversation object for the newly created conversation.
subreddit = reddit.subreddit('redditdev') redditor = reddit.redditor('bboe') subreddit.modmail.create('Subject', 'Body', redditor)
-
subreddits
()¶ Yield subreddits using the new modmail that the user moderates.
Example:
subreddits = reddit.subreddit('all').modmail.subreddits()
-
unread_count
()¶ Return unread conversation count by conversation state.
At time of writing, possible states are: archived, highlighted, inprogress, mod, new, notifications.
Returns: A dict mapping conversation states to unread counts. For example, to print the count of unread moderator discussions:
subreddit = reddit.subreddit('redditdev') unread_counts = subreddit.modmail.unread_count() print(unread_counts['mod'])
-