[scrobbles] Fix dataclass parsing and add puzzles to urls
This commit is contained in:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user