Skip to content
Back to top
View this page

# BaseModNotes

class praw.models.mod_notes.BaseModNotes(reddit: praw.Reddit)

  Provides base methods to interact with moderator notes.

  __init__(reddit: praw.Reddit)

    Initialize a `BaseModNotes` instance.

    Parameters:

      reddit – An instance of `Reddit`.

  create(*, label: str | None = None, note: str, redditor: Redditor | str | None = None, subreddit: praw.models.Subreddit | str | None = None, thing: Comment | Submission | str | None = None, **other_settings: Any) → praw.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"`, or `None` (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 a `Redditor` 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 a `Subreddit` instance (e.g., `reddit.subreddit.mod`).

      - thing – Either the fullname of a comment/submission, a `Comment`, or a `Submission` 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:

        reddit.subreddit("test").mod.notes.create(
            label="HELPFUL_USER", note="Test note", redditor="spez"
        )
        # or
        reddit.redditor("spez").mod.notes.create(
            label="HELPFUL_USER", note="Test note", subreddit="test"
        )
        # or
        reddit.notes.create(
            label="HELPFUL_USER", note="Test note", redditor="spez", subreddit="test"
        )

  delete(*, delete_all: bool = False, note_id: str | None = None, redditor: Redditor | str | None = None, subreddit: praw.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` is `True`.

      - redditor –

        The redditor to delete the note(s) for (default: `None`). Can be a `Redditor` 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 a `Subreddit` 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:

        reddit.subreddit("test").mod.notes.delete(
            note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339", redditor="spez"
        )
        # or
        reddit.redditor("spez").notes.delete(
            note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339", subreddit="test"
        )
        # or
        reddit.notes.delete(
            note_id="ModNote_d324b280-5ecc-435d-8159-3e259e84e339",
            subreddit="test",
            redditor="spez",
        )

    To delete all notes for u/spez, try:

        reddit.subreddit("test").mod.notes.delete(delete_all=True, redditor="spez")
        # or
        reddit.redditor("spez").notes.delete(delete_all=True, subreddit="test")
        # or
        reddit.notes.delete(delete_all=True, subreddit="test", redditor="spez")