瀏覽代碼

fix uuid checks on save

Nick Sweeting 1 年之前
父節點
當前提交
e558d71b10
共有 3 個文件被更改,包括 11 次插入22 次删除
  1. 9 0
      archivebox/abid_utils/models.py
  2. 2 1
      archivebox/builtin_plugins/singlefile/apps.py
  3. 0 21
      archivebox/core/models.py

+ 9 - 0
archivebox/abid_utils/models.py

@@ -93,6 +93,7 @@ class ABIDModel(models.Model):
         super().save(*args, **kwargs)
         assert str(self.id) == str(self.ABID.uuid), f'self.id {self.id} does not match self.ABID {self.ABID.uuid}'
         assert str(self.abid) == str(self.ABID), f'self.abid {self.id} does not match self.ABID {self.ABID.uuid}'
+        assert str(self.uuid) == str(self.ABID.uuid), f'self.uuid ({self.uuid}) does not match .ABID.uuid ({self.ABID.uuid})'
 
     @property
     def abid_values(self) -> Dict[str, Any]:
@@ -186,6 +187,14 @@ class ABIDModel(models.Model):
         Get a uuid.UUID (v4) representation of the object's ABID.
         """
         return self.ABID.uuid
+    
+    @property
+    def uuid(self) -> str:
+        """
+        Get a str uuid.UUID (v4) representation of the object's ABID.
+        """
+        assert str(self.id) == str(self.ABID.uuid)
+        return str(self.id)
 
     @property
     def TypeID(self) -> TypeID:

+ 2 - 1
archivebox/builtin_plugins/singlefile/apps.py

@@ -91,4 +91,5 @@ class SinglefileConfig(AppConfig):
     verbose_name = 'SingleFile'
 
     def ready(self):
-        print('Loaded singlefile plugin')
+        pass
+        # print('Loaded singlefile plugin')

+ 0 - 21
archivebox/core/models.py

@@ -158,9 +158,6 @@ class Snapshot(ABIDModel):
 
     objects = SnapshotManager()
 
-    @property
-    def uuid(self):
-        return self.id
 
     def __repr__(self) -> str:
         title = (self.title_stripped or '-')[:64]
@@ -170,13 +167,6 @@ class Snapshot(ABIDModel):
         title = (self.title_stripped or '-')[:64]
         return f'[{self.timestamp}] {self.url[:64]} ({title})'
 
-    def save(self, *args, **kwargs):
-        super().save(*args, **kwargs)
-        try:
-            assert str(self.id) == str(self.ABID.uuid) == str(self.uuid), f'Snapshot.id ({self.id}) does not match .ABID.uuid ({self.ABID.uuid})'
-        except AssertionError as e:
-            print(e)
-
     @classmethod
     def from_json(cls, info: dict):
         info = {k: v for k, v in info.items() if k in cls.keys}
@@ -471,17 +461,6 @@ class ArchiveResult(ABIDModel):
     def __str__(self):
         return self.extractor
 
-    def save(self, *args, **kwargs):
-        super().save(*args, **kwargs)
-        try:
-            assert str(self.id) == str(self.ABID.uuid) == str(self.uuid), f'ArchiveResult.id ({self.id}) does not match .ABID.uuid ({self.ABID.uuid})'
-        except AssertionError as e:
-            print(e)
-
-    @property
-    def uuid(self):
-        return self.id
-
     @cached_property
     def snapshot_dir(self):
         return Path(self.snapshot.link_dir)