ModeratorRelationship
- class asyncpraw.models.reddit.subreddit.ModeratorRelationship(subreddit: asyncpraw.models.Subreddit, relationship: str)
Provides methods to interact with a
Subreddit’s moderators.Moderators of a subreddit can be iterated through like so:
subreddit = await reddit.subreddit("test") async for moderator in subreddit.moderator: print(moderator)
- await __call__(redditor: Optional[Union[asyncpraw.models.Redditor, str]] = None) List[asyncpraw.models.Redditor]
Return a list of
Redditors who are moderators.- Parameters
redditor – When provided, return a list containing at most one
Redditorinstance. This is useful to confirm if a relationship exists, or to fetch the metadata associated with a particular relationship (default:None).
Note
To help mitigate targeted moderator harassment, this call requires the
Redditinstance to be authenticated i.e.,read_onlymust returnFalse. This call, however, only makes use of thereadscope. For more information on why the moderator list is hidden can be found here: https://reddit.zendesk.com/hc/en-us/articles/360049499032-Why-is-the-moderator-list-hidden-Note
Unlike other relationship callables, this relationship is not paginated. Thus it simply returns the full list, rather than an iterator for the results.
To be used like:
subreddit = await reddit.subreddit("test") moderators = await subreddit.moderator()
For example, to list the moderators along with their permissions try:
subreddit = await reddit.subreddit("test") moderators = await subreddit.moderator() for moderator in moderators: print(f"{moderator}: {moderator.mod_permissions}")
- __init__(subreddit: asyncpraw.models.Subreddit, relationship: str)
Initialize a
SubredditRelationshipinstance.- Parameters
subreddit – The
Subredditfor the relationship.relationship – The name of the relationship.
- await add(redditor: Union[str, asyncpraw.models.Redditor], *, permissions: Optional[List[str]] = None, **other_settings: Any)
Add or invite
redditorto be a moderator of theSubreddit.- Parameters
redditor – A redditor name or
Redditorinstance.permissions – When provided (not
None), permissions should be a list of strings specifying which subset of permissions to grant. An empty list[]indicates no permissions, and when not providedNone, indicates full permissions (default:None).
An invite will be sent unless the user making this call is an admin user.
For example, to invite u/spez with
"posts"and"mail"permissions to r/test, try:subreddit = await reddit.subreddit("test") await subreddit.moderator.add("spez", permissions=["posts", "mail"])
- await invite(redditor: Union[str, asyncpraw.models.Redditor], *, permissions: Optional[List[str]] = None, **other_settings: Any)
Invite
redditorto be a moderator of theSubreddit.- Parameters
redditor – A redditor name or
Redditorinstance.permissions – When provided (not
None), permissions should be a list of strings specifying which subset of permissions to grant. An empty list[]indicates no permissions, and when not providedNone, indicates full permissions (default:None).
- For example, to invite u/spez with
"posts"and"mail" permissions to r/test, try:
subreddit = await reddit.subreddit("test") await subreddit.moderator.invite("spez", permissions=["posts", "mail"])
- invited(*, redditor: Optional[Union[asyncpraw.models.Redditor, str]] = None, **generator_kwargs: Any) AsyncIterator[asyncpraw.models.Redditor]
Return a
ListingGeneratorforRedditors invited to be moderators.- Parameters
redditor – When provided, return a list containing at most one
Redditorinstance. This is useful to confirm if a relationship exists, or to fetch the metadata associated with a particular relationship (default:None).
Additional keyword arguments are passed in the initialization of
ListingGenerator.Note
Unlike other usages of
ListingGenerator,limithas no effect in the quantity returned. This endpoint always returns moderators in batches of 25 at a time regardless of whatlimitis set to.Usage:
subreddit = await reddit.subreddit("test") async for invited_mod in subreddit.moderator.invited(): print(invited_mod)
- await leave()
Abdicate the moderator position (use with care).
For example:
subreddit = await reddit.subreddit("test") await subreddit.moderator.leave()
- await remove(redditor: Union[str, asyncpraw.models.Redditor])
Remove
redditorfrom this relationship.- Parameters
redditor – A redditor name or
Redditorinstance.
- await remove_invite(redditor: Union[str, asyncpraw.models.Redditor])
Remove the moderator invite for
redditor.- Parameters
redditor – A redditor name or
Redditorinstance.
For example:
subreddit = await reddit.subreddit("test") await subreddit.moderator.remove_invite("spez")
- await update(redditor: Union[str, asyncpraw.models.Redditor], *, permissions: Optional[List[str]] = None)
Update the moderator permissions for
redditor.- Parameters
redditor – A redditor name or
Redditorinstance.permissions – When provided (not
None), permissions should be a list of strings specifying which subset of permissions to grant. An empty list[]indicates no permissions, and when not provided,None, indicates full permissions (default:None).
For example, to add all permissions to the moderator, try:
await subreddit.moderator.update("spez")
To remove all permissions from the moderator, try:
await subreddit.moderator.update("spez", permissions=[])
- await update_invite(redditor: Union[str, asyncpraw.models.Redditor], *, permissions: Optional[List[str]] = None)
Update the moderator invite permissions for
redditor.- Parameters
redditor – A redditor name or
Redditorinstance.permissions – When provided (not
None), permissions should be a list of strings specifying which subset of permissions to grant. An empty list[]indicates no permissions, and when not provided,None, indicates full permissions (default:None).
For example, to grant the
"flair"and"mail"permissions to the moderator invite, try:await subreddit.moderator.update_invite("spez", permissions=["flair", "mail"])