aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/models
diff options
context:
space:
mode:
authorGravatar Matteo Bertucci <[email protected]>2020-01-12 12:39:42 +0100
committerGravatar GitHub <[email protected]>2020-01-12 12:39:42 +0100
commitacc8b5e5de72e63c37959cd4e62b1e6e462b25ee (patch)
tree0e3ec2b9a6b45785d764f5e445626662618cbab6 /pydis_site/apps/api/models
parentMerge branch 'bot#549-show-attachments-staff' of https://github.com/python-di... (diff)
parentAdding iframe attributes to attribute whitelist (diff)
Merge branch 'master' into bot#549-show-attachments-staff
Diffstat (limited to 'pydis_site/apps/api/models')
-rw-r--r--pydis_site/apps/api/models/__init__.py1
-rw-r--r--pydis_site/apps/api/models/bot/__init__.py1
-rw-r--r--pydis_site/apps/api/models/bot/offensive_message.py48
3 files changed, 50 insertions, 0 deletions
diff --git a/pydis_site/apps/api/models/__init__.py b/pydis_site/apps/api/models/__init__.py
index a4656bc3..450d18cd 100644
--- a/pydis_site/apps/api/models/__init__.py
+++ b/pydis_site/apps/api/models/__init__.py
@@ -7,6 +7,7 @@ from .bot import (
Message,
MessageDeletionContext,
Nomination,
+ OffensiveMessage,
OffTopicChannelName,
Reminder,
Role,
diff --git a/pydis_site/apps/api/models/bot/__init__.py b/pydis_site/apps/api/models/bot/__init__.py
index 46219ea2..8ae47746 100644
--- a/pydis_site/apps/api/models/bot/__init__.py
+++ b/pydis_site/apps/api/models/bot/__init__.py
@@ -7,6 +7,7 @@ from .message import Message
from .message_deletion_context import MessageDeletionContext
from .nomination import Nomination
from .off_topic_channel_name import OffTopicChannelName
+from .offensive_message import OffensiveMessage
from .reminder import Reminder
from .role import Role
from .tag import Tag
diff --git a/pydis_site/apps/api/models/bot/offensive_message.py b/pydis_site/apps/api/models/bot/offensive_message.py
new file mode 100644
index 00000000..b466d9c2
--- /dev/null
+++ b/pydis_site/apps/api/models/bot/offensive_message.py
@@ -0,0 +1,48 @@
+import datetime
+
+from django.core.exceptions import ValidationError
+from django.core.validators import MinValueValidator
+from django.db import models
+
+from pydis_site.apps.api.models.utils import ModelReprMixin
+
+
+def future_date_validator(date: datetime.date) -> None:
+ """Raise ValidationError if the date isn't a future date."""
+ if date < datetime.datetime.now(datetime.timezone.utc):
+ raise ValidationError("Date must be a future date")
+
+
+class OffensiveMessage(ModelReprMixin, models.Model):
+ """A message that triggered a filter and that will be deleted one week after it was sent."""
+
+ id = models.BigIntegerField(
+ primary_key=True,
+ help_text="The message ID as taken from Discord.",
+ validators=(
+ MinValueValidator(
+ limit_value=0,
+ message="Message IDs cannot be negative."
+ ),
+ )
+ )
+ channel_id = models.BigIntegerField(
+ help_text=(
+ "The channel ID that the message was "
+ "sent in, taken from Discord."
+ ),
+ validators=(
+ MinValueValidator(
+ limit_value=0,
+ message="Channel IDs cannot be negative."
+ ),
+ )
+ )
+ delete_date = models.DateTimeField(
+ help_text="The date on which the message will be auto-deleted.",
+ validators=(future_date_validator,)
+ )
+
+ def __str__(self):
+ """Return some info on this message, for display purposes only."""
+ return f"Message {self.id}, will be deleted at {self.delete_date}"