Article Mutators

This commit is contained in:
Corban-Lee Jones 2024-06-18 00:26:33 +01:00
parent 34ac7ae8ed
commit 4d74cab9c0
9 changed files with 120 additions and 67 deletions

View File

@ -1,4 +1,4 @@
# Generated by Django 5.0.4 on 2024-06-11 13:58
# Generated by Django 5.0.4 on 2024-06-17 01:11
import django.db.models.deletion
import django.utils.timezone
@ -22,6 +22,7 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=32)),
('keywords', models.CharField(blank=True, max_length=128, null=True)),
('regex', models.CharField(blank=True, max_length=128, null=True)),
('whitelist', models.BooleanField(default=False)),
('guild_id', models.CharField(max_length=128)),
],
options={
@ -67,6 +68,7 @@ class Migration(migrations.Migration):
('guild_id', models.CharField(max_length=128)),
('creation_datetime', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('extra_notes', models.CharField(blank=True, max_length=250, null=True)),
('uwuify', models.BooleanField(default=False)),
('active', models.BooleanField(default=True)),
],
options={
@ -78,11 +80,18 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='TrackedContent',
fields=[
('guid', models.CharField(max_length=128, primary_key=True, serialize=False)),
('id', models.AutoField(primary_key=True, serialize=False)),
('guid', models.CharField(max_length=128)),
('title', models.CharField(max_length=128)),
('url', models.URLField()),
('url', models.URLField(unique=True)),
('blocked', models.BooleanField(default=False)),
('creation_datetime', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('guild_id', models.CharField(max_length=128)),
],
options={
'verbose_name': 'tracked contents',
'get_latest_by': '-creation_datetime',
},
),
migrations.AddConstraint(
model_name='filter',
@ -120,4 +129,12 @@ class Migration(migrations.Migration):
model_name='subchannel',
constraint=models.UniqueConstraint(fields=('channel_id', 'subscription'), name='unique channel id and subscription pair'),
),
migrations.AddConstraint(
model_name='trackedcontent',
constraint=models.UniqueConstraint(fields=('guid', 'guild_id'), name='unique guid & guild_id pair'),
),
migrations.AddConstraint(
model_name='trackedcontent',
constraint=models.UniqueConstraint(fields=('url', 'guild_id'), name='unique url & guild_id pair'),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 5.0.4 on 2024-06-17 01:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='ArticleMutator',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=64)),
('value', models.CharField(max_length=32)),
],
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.0.4 on 2024-06-11 20:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='trackedcontent',
name='blocked',
field=models.BooleanField(default=False),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.0.4 on 2024-06-12 08:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0002_trackedcontent_blocked'),
]
operations = [
migrations.AddField(
model_name='filter',
name='whitelist',
field=models.BooleanField(default=False),
),
]

View File

@ -0,0 +1,31 @@
# Generated by Django 5.0.4 on 2024-06-17 01:23
from django.db import migrations
def add_mutators(apps, schema_editor):
ArticleMutator = apps.get_model("home", "ArticleMutator")
ArticleMutator.objects.create(name="Uwuify Title", value="UWU_TITLE")
ArticleMutator.objects.create(name="Uwuify Description", value="UWU_DESC")
ArticleMutator.objects.create(name="Gibberish Title", value="GIB_TITLE")
ArticleMutator.objects.create(name="Gibberish Description", value="GIB_DESC")
ArticleMutator.objects.create(name="L33t Sp34k Title", value="L3_TITLE")
ArticleMutator.objects.create(name="L33t Sp34k Description", value="L3_DESC")
ArticleMutator.objects.create(name="Reversed Title", value="REV_TITLE")
ArticleMutator.objects.create(name="Reversed Description", value="REV_DESC")
ArticleMutator.objects.create(name="Randomise Title", value="RND_TITLE")
ArticleMutator.objects.create(name="Randomise Description", value="RND_DESC")
ArticleMutator.objects.create(name="Random Case Title", value="RNC_TITLE")
ArticleMutator.objects.create(name="Random Case Description", value="RNC_DESC")
ArticleMutator.objects.create(name="Pig Latin Title", value="PGL_TITLE")
ArticleMutator.objects.create(name="Pig Latin Description", value="PGL_DESC")
class Migration(migrations.Migration):
dependencies = [
('home', '0002_articlemutator'),
]
operations = [
migrations.RunPython(add_mutators)
]

View File

@ -0,0 +1,17 @@
# Generated by Django 5.0.4 on 2024-06-17 01:31
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('home', '0003_initial_mutator_data'),
]
operations = [
migrations.RemoveField(
model_name='subscription',
name='uwuify',
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.0.4 on 2024-06-15 22:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0004_subscription_uwuify'),
]
operations = [
migrations.AlterField(
model_name='trackedcontent',
name='url',
field=models.URLField(unique=True),
),
]

View File

@ -1,4 +1,4 @@
# Generated by Django 5.0.4 on 2024-06-15 21:47
# Generated by Django 5.0.4 on 2024-06-17 01:33
from django.db import migrations, models
@ -6,13 +6,13 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0003_filter_whitelist'),
('home', '0004_remove_subscription_uwuify'),
]
operations = [
migrations.AddField(
model_name='subscription',
name='uwuify',
field=models.BooleanField(default=False),
name='mutators',
field=models.ManyToManyField(blank=True, to='home.articlemutator'),
),
]

View File

@ -202,10 +202,10 @@ class Subscription(models.Model):
blank=True,
)
uwuify = models.BooleanField(default=False)
filters = models.ManyToManyField(to="home.Filter", blank=True)
mutators = models.ManyToManyField(to="home.ArticleMutator", blank=True)
active = models.BooleanField(default=True)
class Meta:
@ -246,10 +246,9 @@ class TrackedContent(models.Model):
This is used to ensure duplicate articles aren't sent in feeds.
"""
guid = models.CharField(
primary_key=True,
max_length=128
)
id = models.AutoField(primary_key=True)
guid = models.CharField(max_length=128)
title = models.CharField(max_length=128)
@ -264,5 +263,27 @@ class TrackedContent(models.Model):
editable=False
)
guild_id = models.CharField(max_length=128)
class Meta:
verbose_name = "tracked content"
verbose_name = "tracked contents"
get_latest_by = "-creation_datetime"
constraints = [
models.UniqueConstraint(fields=["guid", "guild_id"], name="unique guid & guild_id pair"),
models.UniqueConstraint(fields=["url", "guild_id"], name="unique url & guild_id pair")
]
def __str__(self) -> str:
return self.title
class ArticleMutator(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=64)
value = models.CharField(max_length=32)
def __str__(self) -> str:
return self.name