-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
mod_note.py
70 lines (57 loc) · 3.05 KB
/
mod_note.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""Provide the ModNote class."""
from ..endpoints import API_PATH
from .base import AsyncPRAWBase
class ModNote(AsyncPRAWBase):
"""Represent a moderator note.
.. include:: ../../typical_attributes.rst
=============== ====================================================================
Attribute Description
=============== ====================================================================
``action`` If this note represents a moderator action, this field indicates the
type of action. For example, ``"banuser"`` if the action was banning
a user.
``created_at`` Time the moderator note was created, represented in `Unix Time`_.
``description`` If this note represents a moderator action, this field indicates the
description of the action. For example, if the action was banning
the user, this is the ban reason.
``details`` If this note represents a moderator action, this field indicates the
details of the action. For example, if the action was banning the
user, this is the duration of the ban.
``id`` The ID of the moderator note.
``label`` The label applied to the note, currently one of:
``"ABUSE_WARNING"``, ``"BAN"``, ``"BOT_BAN"``, ``"HELPFUL_USER"``,
``"PERMA_BAN"``, ``"SOLID_CONTRIBUTOR"``, ``"SPAM_WARNING"``,
``"SPAM_WATCH"``, or ``None``.
``moderator`` The moderator who created the note.
``note`` The text of the note.
``reddit_id`` The fullname of the object this note is attributed to, or ``None``
if not set. If this note represents a moderators action, this is the
fullname of the object the action was performed on.
``subreddit`` The subreddit this note belongs to.
``type`` The type of note, currently one of: ``"APPROVAL"``, ``"BAN"``,
``"CONTENT_CHANGE"``, ``"INVITE"``, ``"MUTE"``, ``"NOTE"``,
``"REMOVAL"``, or ``"SPAM"``.
``user`` The redditor the note is for.
=============== ====================================================================
.. _unix time: https://en.wikipedia.org/wiki/Unix_time
"""
def __eq__(self, other):
"""Return whether the other instance equals the current."""
if isinstance(other, self.__class__):
return self.id == other.id
if isinstance(other, str):
return self.id == other
return super().__eq__(other)
async def delete(self):
"""Delete this note.
For example, to delete the last note for u/spez from r/test, try:
.. code-block:: python
for note in reddit.subreddit("test").mod.notes("spez"):
note.delete()
"""
params = {
"user": str(self.user),
"subreddit": str(self.subreddit),
"note_id": self.id,
}
await self._reddit.delete(API_PATH["mod_notes"], params=params)