[scrobbles] Fix dataclass parsing and add puzzles to urls

This commit is contained in:
2025-08-03 01:59:56 -04:00
parent fc72b23b11
commit d04db0ecb5
15 changed files with 240 additions and 232 deletions

View File

@ -1,4 +1,6 @@
from dataclasses import dataclass
import logging
from typing import Optional
from uuid import uuid4
from django.conf import settings
@ -8,7 +10,11 @@ from django.urls import reverse
from django_extensions.db.models import TimeStampedModel
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit
from scrobbles.dataclasses import VideoGameLogData
from scrobbles.dataclasses import (
BaseLogData,
LongPlayLogData,
WithPeopleLogData,
)
from scrobbles.mixins import LongPlayScrobblableMixin, ScrobblableConstants
from scrobbles.utils import get_scrobbles_for_media
from videogames.igdb import lookup_game_id_from_gdb
@ -18,6 +24,18 @@ BNULL = {"blank": True, "null": True}
User = get_user_model()
@dataclass
class VideoGameLogData(BaseLogData, LongPlayLogData, WithPeopleLogData):
platform_id: Optional[int] = None
emulated: Optional[bool] = False
emulator: Optional[str] = None
def platform(self):
if not self.platform_id:
return
return VideoGamePlatform.objects.filter(id=self.platform_id).first()
class VideoGamePlatform(TimeStampedModel):
name = models.CharField(max_length=255)
uuid = models.UUIDField(default=uuid4, editable=False, **BNULL)