Browse Source

lazy evaluation of audio duration

boyska 2 years ago
parent
commit
797caef94d
1 changed files with 8 additions and 3 deletions
  1. 8 3
      feed

+ 8 - 3
feed

@@ -101,9 +101,7 @@ def duration_humanreadable(seconds):
 class Audio(object):
     def __init__(self, url, duration=None, date=None):
         self.url = url
-        if duration is None:
-            duration = get_duration(url)
-        self.duration = duration
+        self._duration = duration
         self.date = date
         self.end_date = datetime.datetime(9999, 12, 31, tzinfo=datetime.timezone.utc)
 
@@ -118,6 +116,13 @@ class Audio(object):
         )
 
     @property
+    def duration(self):
+        if self._duration is None:
+            self._duration = get_duration(self.url)
+        return self._duration
+
+
+    @property
     def urls(self):
         return [self.url]