Selaa lähdekoodia

[scrobbles] Allow junk in the scrobble log

Colin Powell 11 kuukautta sitten
vanhempi
commit
5014c4428b
2 muutettua tiedostoa jossa 13 lisäystä ja 3 poistoa
  1. 12 2
      vrobbler/apps/scrobbles/dataclasses.py
  2. 1 1
      vrobbler/apps/scrobbles/models.py

+ 12 - 2
vrobbler/apps/scrobbles/dataclasses.py

@@ -1,6 +1,6 @@
+import inspect
 import json
-from dataclasses import dataclass, asdict
-
+from dataclasses import asdict, dataclass
 from typing import Optional
 
 
@@ -23,6 +23,16 @@ class JSONMetadata(object):
     def json(self):
         return json.dumps(self.asdict)
 
+    @classmethod
+    def from_dict(cls, env):
+        return cls(
+            **{
+                k: v
+                for k, v in env.items()
+                if k in inspect.signature(cls).parameters
+            }
+        )
+
 
 @dataclass
 class BoardGameScore(JSONMetadata):

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

@@ -622,7 +622,7 @@ class Scrobble(TimeStampedModel):
             )
             return None
 
-        return metadata_cls(**self.log)
+        return metadata_cls.from_dict(self.log)
 
     @property
     def tzinfo(self):