Преглед изворни кода

[boardgames] Update metadata for board game scrobbles

Colin Powell пре 9 месеци
родитељ
комит
f80daba67b
2 измењених фајлова са 8 додато и 1 уклоњено
  1. 6 0
      vrobbler/apps/scrobbles/dataclasses.py
  2. 2 1
      vrobbler/apps/scrobbles/models.py

+ 6 - 0
vrobbler/apps/scrobbles/dataclasses.py

@@ -44,7 +44,10 @@ class JSONMetadata(JSONWizard):
 class BoardGameScore(JSONMetadata):
     user_id: Optional[int] = None
     name: Optional[str] = None
+    bgg_username: Optional[str] = None
     color: Optional[str] = None
+    character: Optional[str] = None
+    team: Optional[str] = None
     score: Optional[int] = None
     win: Optional[bool] = None
 
@@ -52,6 +55,9 @@ class BoardGameScore(JSONMetadata):
 @dataclass
 class BoardGameMetadata(JSONMetadata):
     players: Optional[list[BoardGameScore]] = None
+    difficulty: Optional[int] = None
+    solo: Optional[bool] = None
+    two_handed: Optional[bool] = None
 
     def geo_location(self):
         return GeoLocation.objects.filter(id=self.geo_location_id).first()

+ 2 - 1
vrobbler/apps/scrobbles/models.py

@@ -40,6 +40,7 @@ from videogames.models import VideoGame
 from videos.models import Series, Video
 from scrobbles.dataclasses import (
     BoardGameMetadata,
+    JSONMetadata,
     LifeEventMetadata,
     ScrobbleMetadataDecoder,
     ScrobbleMetadataEncoder,
@@ -606,7 +607,7 @@ class Scrobble(TimeStampedModel):
                 )
 
     @property
-    def metadata(self):
+    def metadata(self) -> Optional[JSONMetadata]:
         metadata_cls = None
         if self.media_type == self.MediaType.LIFE_EVENT:
             metadata_cls = LifeEventMetadata