]> git.0d.be Git - django-panik-nonstop.git/commitdiff
add switch to compute-durations to handle jingles
authorFrédéric Péters <fpeters@0d.be>
Thu, 21 May 2020 06:35:34 +0000 (08:35 +0200)
committerFrédéric Péters <fpeters@0d.be>
Thu, 21 May 2020 06:35:34 +0000 (08:35 +0200)
nonstop/management/commands/compute_durations.py
nonstop/models.py

index 928a584b4b597d484afbfedc3f62b6399291df44..511fc1d417f0b4da2a395a34a5b55b57cc3fa222 100644 (file)
@@ -4,7 +4,7 @@ import os
 from django.core.management.base import BaseCommand
 
 from emissions.utils import get_duration
-from ...models import Track
+from ...models import Track, Jingle
 
 
 class Command(BaseCommand):
@@ -12,16 +12,22 @@ class Command(BaseCommand):
         parser.add_argument(
                 '--recent', action='store_true', default=False,
                 help='Only do recent files')
+        parser.add_argument(
+                '--jingles', action='store_true', default=False,
+                help='Do jingles')
         parser.add_argument(
                 '--force', action='store_true', default=False,
                 help='Recompute existing durations')
 
     def handle(self, verbosity, **kwargs):
-        qs = Track.objects.all()
+        if kwargs.get('jingles'):
+            qs = Jingle.objects.all()
+        else:
+            qs = Track.objects.all()
+            if kwargs.get('recent'):
+                qs = qs.filter(creation_timestamp__gt=datetime.date.today() - datetime.timedelta(days=10))
         if not kwargs.get('force'):
             qs = qs.filter(duration__isnull=True)
-        if kwargs.get('recent'):
-            qs = qs.filter(creation_timestamp__gt=datetime.date.today() - datetime.timedelta(days=10))
         if verbosity:
             total = qs.count()
         for i, track in enumerate(qs):
index 139d27062b187c916a7fbbd6d2084f77c1e3ab23..be7665ed1065e95c1fd901658da1abcfa585d566 100644 (file)
@@ -182,6 +182,19 @@ class Jingle(models.Model):
                 Jingle.objects.all().update(**{attr: False})
         return super(Jingle, self).save(**kwargs)
 
+    @property
+    def short(self):
+        return self.filepath[len(REMOTE_BASE_PATH):]
+
+    def file_path(self):
+        # for compatibility with Track model method
+        return self.get_local_filepath()
+
+    def get_local_filepath(self):
+        if not self.short:
+            return None
+        return os.path.join(LOCAL_BASE_PATH, self.short)
+
     @property
     def title(self):
         return self.label