Add genres!

This commit is contained in:
2023-03-14 18:35:58 -04:00
parent c9b04772a0
commit c9874b3fda
13 changed files with 354 additions and 5 deletions

View File

@ -5,13 +5,31 @@ from uuid import uuid4
from django.db import models
from django.urls import reverse
from django_extensions.db.models import TimeStampedModel
from taggit.managers import TaggableManager
from scrobbles.utils import get_scrobbles_for_media
from taggit.models import TagBase, GenericTaggedItemBase
BNULL = {"blank": True, "null": True}
logger = logging.getLogger(__name__)
class Genre(TagBase):
source = models.CharField(max_length=255, **BNULL)
class Meta:
verbose_name = "Genre"
verbose_name_plural = "Genres"
class ObjectWithGenres(GenericTaggedItemBase):
tag = models.ForeignKey(
Genre,
on_delete=models.CASCADE,
related_name="%(app_label)s_%(class)s_items",
)
class ScrobblableMixin(TimeStampedModel):
SECONDS_TO_STALE = 1600
@ -20,6 +38,8 @@ class ScrobblableMixin(TimeStampedModel):
run_time_seconds = models.IntegerField(**BNULL)
run_time_ticks = models.PositiveBigIntegerField(**BNULL)
genre = TaggableManager(through=ObjectWithGenres)
class Meta:
abstract = True