aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pydis_site/apps/api/migrations/0079_add_server_message_and_alert_fields.py22
-rw-r--r--pydis_site/apps/api/models/bot/filters.py25
-rw-r--r--pydis_site/apps/api/serializers.py28
-rw-r--r--pydis_site/apps/api/viewsets/bot/filters.py32
4 files changed, 34 insertions, 73 deletions
diff --git a/pydis_site/apps/api/migrations/0079_add_server_message_and_alert_fields.py b/pydis_site/apps/api/migrations/0079_add_server_message_and_alert_fields.py
index f9803bd3..c6299cb9 100644
--- a/pydis_site/apps/api/migrations/0079_add_server_message_and_alert_fields.py
+++ b/pydis_site/apps/api/migrations/0079_add_server_message_and_alert_fields.py
@@ -15,8 +15,7 @@ def migrate_filterlist(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) -> N
}
for filter_list in FilterList.objects.all():
filter_list.send_alert = change_map.get(filter_list.name)
- filter_list.server_message_text = ""
- filter_list.server_message_embed = ""
+ filter_list.dm_embed = ""
filter_list.save()
@@ -24,7 +23,6 @@ def unmigrate_filterlist(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) ->
FilterList = apps.get_model("api", "FilterList")
for filter_list in FilterList.objects.all():
filter_list.send_alert = True
- filter_list.server_message_text = None
filter_list.server_message_embed = None
filter_list.save()
@@ -42,13 +40,8 @@ class Migration(migrations.Migration):
),
migrations.AddField(
model_name='filter',
- name='server_message_embed',
- field=models.CharField(help_text='The content of the server message embed', max_length=100, null=True),
- ),
- migrations.AddField(
- model_name='filter',
- name='server_message_text',
- field=models.CharField(help_text='The message to send on the server', max_length=100, null=True),
+ name='dm_embed',
+ field=models.CharField(help_text='The content of the DM embed', max_length=2000, null=True),
),
migrations.AddField(
model_name='filterlist',
@@ -57,13 +50,8 @@ class Migration(migrations.Migration):
),
migrations.AddField(
model_name='filterlist',
- name='server_message_embed',
- field=models.CharField(help_text='The content of the server message embed', max_length=100, null=True),
- ),
- migrations.AddField(
- model_name='filterlist',
- name='server_message_text',
- field=models.CharField(help_text='The message to send on the server', max_length=100, null=True),
+ name='dm_embed',
+ field=models.CharField(help_text='The content of the DM embed', max_length=2000, null=True),
),
migrations.RunPython(migrate_filterlist, unmigrate_filterlist)
]
diff --git a/pydis_site/apps/api/models/bot/filters.py b/pydis_site/apps/api/models/bot/filters.py
index 92251ee4..97af21f8 100644
--- a/pydis_site/apps/api/models/bot/filters.py
+++ b/pydis_site/apps/api/models/bot/filters.py
@@ -50,6 +50,11 @@ class FilterSettingsMixin(models.Model):
null=True,
help_text="The DM to send to a user triggering this filter."
)
+ dm_embed = models.CharField(
+ max_length=2000,
+ help_text="The content of the DM embed",
+ null=True
+ )
infraction_type = models.CharField(
choices=Infraction.TYPE_CHOICES,
max_length=9,
@@ -111,16 +116,6 @@ class FilterList(FilterSettingsMixin):
null=False,
default=True
)
- server_message_text = models.CharField(
- max_length=100,
- help_text="The message to send on the server",
- null=True
- )
- server_message_embed = models.CharField(
- max_length=100,
- help_text="The content of the server message embed",
- null=True
- )
# Where a filter should apply.
#
# The resolution is done in the following order:
@@ -183,16 +178,6 @@ class Filter(FilterSettingsMixin):
help_text="Whether alert should be sent.",
null=True
)
- server_message_text = models.CharField(
- max_length=100,
- help_text="The message to send on the server",
- null=True
- )
- server_message_embed = models.CharField(
- max_length=100,
- help_text="The content of the server message embed",
- null=True
- )
# Check FilterList model for information about these properties.
enabled_channels = ArrayField(models.IntegerField(), null=True)
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py
index 66236d92..91aac822 100644
--- a/pydis_site/apps/api/serializers.py
+++ b/pydis_site/apps/api/serializers.py
@@ -142,13 +142,18 @@ BASE_SETTINGS_FIELDS = (
"delete_messages",
"send_alert"
)
-INFRACTION_FIELDS = ("infraction_type", "infraction_reason", "infraction_duration", "dm_content")
+INFRACTION_AND_NOTIFICATION_FIELDS = (
+ "infraction_type",
+ "infraction_reason",
+ "infraction_duration",
+ "dm_content",
+ "dm_embed"
+)
CHANNEL_SCOPE_FIELDS = (
"disabled_channels",
"disabled_categories",
"enabled_channels",
)
-SERVER_MESSAGE_FIELDS = ("server_message_text", "server_message_embed")
MENTIONS_FIELDS = ("ping_type", "dm_ping_type")
SETTINGS_FIELDS = ALWAYS_OPTIONAL_SETTINGS + REQUIRED_FOR_FILTER_LIST_SETTINGS
@@ -208,8 +213,10 @@ class FilterSerializer(ModelSerializer):
schema_settings = {
"settings":
{name: getattr(instance, name) for name in BASE_SETTINGS_FIELDS}
- | {"infraction": {name: getattr(instance, name) for name in INFRACTION_FIELDS}}
| {
+ "infraction_and_notification":
+ {name: getattr(instance, name) for name in INFRACTION_AND_NOTIFICATION_FIELDS}
+ } | {
"channel_scope":
{name: getattr(instance, name) for name in CHANNEL_SCOPE_FIELDS}
} | {
@@ -219,12 +226,6 @@ class FilterSerializer(ModelSerializer):
for schema_field_name in MENTIONS_FIELDS
}
}
- } | {
- "server_message":
- {
- schema_field_name: getattr(instance, schema_field_name)
- for schema_field_name in SERVER_MESSAGE_FIELDS
- }
}
schema_base = {name: getattr(instance, name) for name in BASE_FILTER_FIELDS} | \
{"filter_list": instance.filter_list.id}
@@ -306,8 +307,8 @@ class FilterListSerializer(ModelSerializer):
| {"filters": filters}
schema_settings_base = {name: getattr(instance, name) for name in BASE_SETTINGS_FIELDS}
schema_settings_categories = {
- "infraction":
- {name: getattr(instance, name) for name in INFRACTION_FIELDS}} \
+ "infraction_and_notification":
+ {name: getattr(instance, name) for name in INFRACTION_AND_NOTIFICATION_FIELDS}} \
| {
"channel_scope":
{name: getattr(instance, name) for name in CHANNEL_SCOPE_FIELDS}} | {
@@ -315,11 +316,6 @@ class FilterListSerializer(ModelSerializer):
schema_field_name: getattr(instance, schema_field_name)
for schema_field_name in MENTIONS_FIELDS
}
- } | {
- "server_message": {
- schema_field_name: getattr(instance, schema_field_name)
- for schema_field_name in SERVER_MESSAGE_FIELDS
- }
}
return schema_base | {"settings": schema_settings_base | schema_settings_categories}
diff --git a/pydis_site/apps/api/viewsets/bot/filters.py b/pydis_site/apps/api/viewsets/bot/filters.py
index e52cd4e5..dd9a7d87 100644
--- a/pydis_site/apps/api/viewsets/bot/filters.py
+++ b/pydis_site/apps/api/viewsets/bot/filters.py
@@ -37,10 +37,12 @@ class FilterListViewSet(ModelViewSet):
... "enabled": None
... "send_alert": True,
... "delete_messages": None
- ... "infraction": {
+ ... "infraction_and_notification": {
... "infraction_type": None,
... "infraction_reason": "",
... "infraction_duration": None
+ ... "dm_content": None,
+ ... "dm_embed": None
... },
... "channel_scope": {
... "disabled_channels": None,
@@ -51,10 +53,6 @@ class FilterListViewSet(ModelViewSet):
... "ping_type": None
... "dm_ping_type": None
... }
- ... "server_message": {
- ... "server_message_text": None,
- ... "server_message_embed": None
- ... }
... }
...
... },
@@ -68,10 +66,12 @@ class FilterListViewSet(ModelViewSet):
... "enabled": True
... "delete_messages": True,
... "send_alert": True
- ... "infraction": {
+ ... "infraction_and_notification": {
... "infraction_type": "",
... "infraction_reason": "",
... "infraction_duration": "0.0",
+ ... "dm_content": "",
+ ... "dm_embed": ""
... }
... "channel_scope": {
... "disabled_channels": [],
@@ -84,10 +84,6 @@ class FilterListViewSet(ModelViewSet):
... ]
... "dm_ping_type": []
... }
- ... "server_message": {
- ... "server_message_text": "",
- ... "server_message_embed": ""
- ... }
... },
... ...
... ]
@@ -117,10 +113,12 @@ class FilterListViewSet(ModelViewSet):
... "enabled": None
... "delete_messages": None,
... "send_alert": None
- ... "infraction": {
+ ... "infraction_and_notification": {
... "infraction_type": None,
... "infraction_reason": "",
... "infraction_duration": None
+ ... "dm_content": None,
+ ... "dm_embed": None
... },
... "channel_scope": {
... "disabled_channels": None,
@@ -131,10 +129,6 @@ class FilterListViewSet(ModelViewSet):
... "ping_type": None
... "dm_ping_type": None
... }
- ... "server_message": {
- ... "server_message_text": None,
- ... "server_message_embed": None
- ... }
... }
...
... },
@@ -148,10 +142,12 @@ class FilterListViewSet(ModelViewSet):
... "enabled": True
... "delete_messages": True
... "send_alert": True
- ... "infraction": {
+ ... "infraction_and_notification": {
... "infraction_type": "",
... "infraction_reason": "",
... "infraction_duration": "0.0",
+ ... "dm_content": "",
+ ... "dm_embed": ""
... }
... "channel_scope": {
... "disabled_channels": [],
@@ -164,10 +160,6 @@ class FilterListViewSet(ModelViewSet):
... ]
... "dm_ping_type": []
... }
- ... "server_message": {
- ... "server_message_text": "",
- ... "server_message_embed": ""
- ... }
... }
#### Status codes