SubredditModerationStream

class asyncpraw.models.reddit.subreddit.SubredditModerationStream(subreddit: asyncpraw.models.Subreddit)

Provides moderator streams.

__init__(subreddit: asyncpraw.models.Subreddit)

Initialize a SubredditModerationStream instance.

Parameters

subreddit – The moderated subreddit associated with the streams.

edited(only: Optional[str] = None, **stream_options: Any) AsyncGenerator[Union[asyncpraw.models.Comment, asyncpraw.models.Submission], None]

Yield edited comments and submissions as they become available.

Parameters

only – If specified, one of "comments" or "submissions" to yield only results of that type.

Keyword arguments are passed to stream_generator().

For example, to retrieve all new edited submissions/comments made to all moderated subreddits, try:

subreddit = await reddit.subreddit("mod")
async for item in subreddit.mod.stream.edited():
    print(item)
log(action: Optional[str] = None, mod: Optional[Union[asyncpraw.models.Redditor, str]] = None, **stream_options: Any) AsyncGenerator[asyncpraw.models.ModAction, None]

Yield moderator log entries as they become available.

Parameters
  • action – If given, only return log entries for the specified action.

  • mod – If given, only return log entries for actions made by the passed in redditor.

For example, to retrieve all new mod actions made to all moderated subreddits, try:

subreddit = await reddit.subreddit("mod")
async for log in subreddit.mod.stream.log():
    print("Mod: {}, Subreddit: {}".format(log.mod, log.subreddit))
modmail_conversations(other_subreddits: Optional[List[asyncpraw.models.Subreddit]] = None, sort: Optional[str] = None, state: Optional[str] = None, **stream_options: Any) AsyncGenerator[asyncpraw.models.reddit.modmail.ModmailConversation, None]

Yield new-modmail conversations as they become available.

Parameters
  • other_subreddits – A list of Subreddit instances for which to fetch conversations (default: None).

  • sort – Can be one of: "mod", "recent", "unread", or "user" (default: "recent").

  • state – Can be one of: "all", "appeals", "archived", "default", "highlighted", "inbox", "inprogress", "join_requests", "mod", "new", or "notifications" (default: "all"). "all" does not include mod or archived conversations. "inbox" does not include appeals conversations.

Keyword arguments are passed to stream_generator().

To print new mail in the unread modmail queue try:

subreddit = await reddit.subreddit("all")
async for message in subreddit.mod.stream.modmail_conversations():
    print("From: {}, To: {}".format(message.owner, message.participant))
modqueue(only: Optional[str] = None, **stream_options: Any) AsyncGenerator[Union[asyncpraw.models.Comment, asyncpraw.models.Submission], None]

Yield Comments and Submissions in the modqueue as they become available.

Parameters

only – If specified, one of "comments" or "submissions" to yield only results of that type.

Keyword arguments are passed to stream_generator().

To print all new modqueue items try:

subreddit = await reddit.subreddit("mod")
async for item in subreddit.mod.stream.modqueue():
    print(item)
reports(only: Optional[str] = None, **stream_options: Any) AsyncGenerator[Union[asyncpraw.models.Comment, asyncpraw.models.Submission], None]

Yield reported Comments and Submissions as they become available.

Parameters

only – If specified, one of "comments" or "submissions" to yield only results of that type.

Keyword arguments are passed to stream_generator().

To print new user and mod report reasons in the report queue try:

subreddit = await reddit.subreddit("mod")
async for item in subreddit.mod.stream.reports():
    print(item)
spam(only: Optional[str] = None, **stream_options: Any) AsyncGenerator[Union[asyncpraw.models.Comment, asyncpraw.models.Submission], None]

Yield spam Comments and Submissions as they become available.

Parameters

only – If specified, one of "comments" or "submissions" to yield only results of that type.

Keyword arguments are passed to stream_generator().

To print new items in the spam queue try:

subreddit = await reddit.subreddit("mod")
async for item in subreddit.mod.stream.spam():
    print(item)
unmoderated(**stream_options: Any) AsyncGenerator[asyncpraw.models.Submission, None]

Yield unmoderated Submissions as they become available.

Keyword arguments are passed to stream_generator().

To print new items in the unmoderated queue try:

subreddit = await reddit.subreddit("mod")
async for item in subreddit.mod.stream.unmoderated():
    print(item)
unread(**stream_options: Any) AsyncGenerator[asyncpraw.models.SubredditMessage, None]

Yield unread old modmail messages as they become available.

Keyword arguments are passed to stream_generator().

See also

SubredditModeration.inbox() for all messages.

To print new mail in the unread modmail queue try:

subreddit = await reddit.subreddit("mod")
async for message in subreddit.mod.stream.unread():
    print("From: {}, To: {}".format(message.author, message.dest))