]> git.0d.be Git - django-panik-emissions.git/blobdiff - emissions/models.py
add warning if main sound volume is too low
[django-panik-emissions.git] / emissions / models.py
index 02fc8c604431cd150403b50e53e8fee7ab4847f1..afd072eaddc27df90f43f27dbf72e49677634231 100644 (file)
@@ -1,5 +1,7 @@
 import datetime
+import json
 import os
+import statistics
 import urllib.parse
 
 from ckeditor.fields import RichTextField
@@ -744,6 +746,14 @@ class SoundFile(models.Model):
             return False
         return bool(self.duration < min(self.get_durations()) * 0.5)
 
+    def has_low_volume(self):
+        waveform_json = self.get_format_path('waveform.json')
+        if os.path.exists(waveform_json):
+            with open(waveform_json) as wavefile_fd:
+                median_volume = statistics.median(json.load(wavefile_fd))
+                return bool(median_volume < 10)
+        return False
+
     def __str__(self):
         return '%s - %s' % (self.title or self.id, self.episode.title)