Add file cache.
[audio.git] / src / archive / models.py
index 34fc1f4..d76ed99 100644 (file)
@@ -3,8 +3,10 @@ import os.path
 
 from django.db import models
 from time import sleep
+from django.utils.functional import cached_property
 from django.utils.translation import gettext_lazy as _
 from django_pglocks import advisory_lock
+import requests
 from archive.constants import status
 from archive.settings import FILES_SAVE_PATH, ADVERT, LICENSE, ORGANIZATION, PROJECT
 from archive.utils import OverwriteStorage, sha1_file
@@ -85,7 +87,6 @@ class Audiobook(models.Model):
     youtube_status = models.SmallIntegerField(null=True, editable=False, choices=status.choices)
     youtube_task = models.CharField(max_length=64, null=True, editable=False)
     youtube_tags = models.TextField(null=True, editable=False)
-    youtube_file = models.FileField(null=True, upload_to='archive/final', storage=OverwriteStorage(), editable=False)
     youtube_published_tags = models.TextField(null=True, editable=False)
     youtube_published = models.DateTimeField(null=True, editable=False)
     youtube_id = models.CharField(max_length=255, blank=True, default='')
@@ -153,3 +154,9 @@ class Audiobook(models.Model):
             tags['flac_sha1'] = self.source_sha1
         return tags
 
+    @cached_property
+    def book(self):
+        slug = self.url.rstrip('/').rsplit('/', 1)[-1]
+        apidata = requests.get(f'https://wolnelektury.pl/api/books/{slug}/').json()
+        return apidata
+