SubredditModNotes¶
- class asyncpraw.models.SubredditModNotes(reddit: asyncpraw.Reddit, subreddit: asyncpraw.models.Subreddit | str)¶
Provides methods to interact with moderator notes at the subreddit level.
Note
The authenticated user must be a moderator of this subreddit.
For example, all the notes for u/spez in r/test can be iterated through like so:
subreddit = await reddit.subreddit("test") async for note in subreddit.mod.notes.redditors("spez"): print(f"{note.label}: {note.note}")
- __init__(reddit: asyncpraw.Reddit, subreddit: asyncpraw.models.Subreddit | str)¶
Initialize a
SubredditModNotes
instance.
- await create(*, label: str | None = None, note: str, redditor: Redditor | str | None = None, subreddit: asyncpraw.models.Subreddit | str | None = None, thing: Comment | Submission | str | None = None, **other_settings: Any) asyncpraw.models.ModNote ¶
Create a
ModNote
for a redditor in the specified subreddit.- Parameters:
label – The label for the note. As of this writing, this can be one of the following:
"ABUSE_WARNING"
,"BAN"
,"BOT_BAN"
,"HELPFUL_USER"
,"PERMA_BAN"
,"SOLID_CONTRIBUTOR"
,"SPAM_WARNING"
,"SPAM_WATCH"
, orNone
(default:None
).note – The content of the note. As of this writing, this is limited to 250 characters.
redditor –
The redditor to create the note for (default:
None
).Note
This parameter is required if
thing
is not provided or this is not called from aRedditor
instance (e.g.,reddit.redditor.notes
).subreddit –
The subreddit associated with the note (default:
None
).Note
This parameter is required if
thing
is not provided or this is not called from aSubreddit
instance (e.g.,reddit.subreddit.mod
).thing – Either the fullname of a comment/submission, a
Comment
, or aSubmission
to associate with the note.other_settings – Additional keyword arguments can be provided to handle new parameters as Reddit introduces them.
- Returns:
The new
ModNote
object.
For example, to create a note for u/spez in r/test:
subreddit = await reddit.subreddit("test") await subreddit.mod.notes.create( label="HELPFUL_USER", note="Test note", redditor="spez" ) # or redditor = await reddit.redditor("spez") await redditor.mod.notes.create( label="HELPFUL_USER", note="Test note", subreddit="test" ) # or await reddit.notes.create( label="HELPFUL_USER", note="Test note", redditor="spez", subreddit="test" )
- await delete(*, delete_all: bool = False, note_id: str | None = None, redditor: Redditor | str | None = None, subreddit: asyncpraw.models.Subreddit | str | None = None)¶
Delete note(s) for a redditor.
- Parameters:
delete_all –
When
True
, delete all notes for the specified redditor in the specified subreddit (default:False
).Note
This will make a request for each note.
note_id – The ID of the note to delete. This parameter is ignored if
delete_all
isTrue
.redditor –
The redditor to delete the note(s) for (default:
None
). Can be aRedditor
instance or a redditor name.Note
This parameter is required if this method is not called from a
Redditor
instance (e.g.,redditor.notes
).subreddit –
The subreddit to delete the note(s) from (default:
None
). Can be aSubreddit
instance or a subreddit name.Note
This parameter is required if this method is not called from a
Subreddit
instance (e.g.,reddit.subreddit.mod
).
For example, to delete a note with the ID
"ModNote_d324b280-5ecc-435d-8159-3e259e84e339"
, try:subreddit = await reddit.subreddit("test") await subreddit.mod.notes.delete( note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339", redditor="spez" ) # or redditor = await reddit.redditor("spez") await redditor.notes.delete( note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339", subreddit="test" ) # or await reddit.notes.delete( note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339", subreddit="test", redditor="spez", )
To delete all notes for u/spez, try:
subreddit = await reddit.subreddit("test") await subreddit.mod.notes.delete(delete_all=True, redditor="spez") # or redditor = await reddit.redditor("spez") await redditor.notes.delete(delete_all=True, subreddit="test") # or await reddit.notes.delete(delete_all=True, subreddit="test", redditor="spez")
- redditors(*redditors: Redditor | str, all_notes: bool | None = None, **generator_kwargs: Any) AsyncGenerator[asyncpraw.models.ModNote, None] ¶
Return notes from this
Subreddit
for one or more redditors.- Parameters:
redditors – One or more redditors to retrieve notes for. Must be either a
Redditor
or a redditor name.all_notes –
Whether to return all notes or only the latest note (default:
True
if only one redditor is provided otherwiseFalse
).Note
Setting this to
True
will result in a request for each redditor.
- Returns:
A generator that yields the most recent
ModNote
(orNone
if the user doesn’t have any notes in this subreddit) per redditor in their relative order. Ifall_notes
isTrue
, this will yield all notes for each redditor.
For example, all the notes for u/spez in r/test can be iterated through like so:
subreddit = await reddit.subreddit("test") async for note in subreddit.mod.notes.redditors("spez"): print(f"{note.label}: {note.note}")
For example, the latest note for u/spez and u/bboe from r/test can be iterated through like so:
subreddit = await reddit.subreddit("test") redditor = await reddit.redditor("bboe") async for note in subreddit.mod.notes.redditors("spez", redditor): print(f"{note.label}: {note.note}")
For example, all the notes for both u/spez and u/bboe in r/test can be iterated through like so:
subreddit = await reddit.subreddit("test") redditor = await reddit.redditor("bboe") async for note in subreddit.mod.notes.redditors("spez", redditor, all_notes=True): print(f"{note.label}: {note.note}")