From: Guillaume Pellerin Date: Wed, 5 Oct 2022 10:38:20 +0000 (+0200) Subject: fix media duration X-Git-Tag: 2.8.1-pro~77 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=1df49286f17a4acc9867e93396a7b64a0509bda0;p=teleforma.git fix media duration --- diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 2de2044f..f44eaeb5 100755 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -35,12 +35,14 @@ """ import os +import re import string import datetime import mimetypes import copy import random from unidecode import unidecode +import subprocess from django.conf import settings from django.db.models import * @@ -681,12 +683,13 @@ class Media(MediaBase): if self.file: process = subprocess.Popen(["ffmpeg", "-i", self.file.path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) stdout, stderr = process.communicate() - try: - pattern = re.compile(r'Duration: ([\w.-]+):([\w.-]+):([\w.-]+),') - match = pattern.search(stdout) - duration = "%s:%s:%s" % (match.group(1), match.group(2), match.group(3)) - except: - duration = None + pattern = re.compile(r'Duration: ([\w.-]+):([\w.-]+):([\w.-]+),') + match = pattern.search(str(stdout)) + hours = int(match.group(1)) + minutes = int(match.group(2)) + seconds = int(match.group(3)[:-3]) + #duration = "%s:%s:%s" % (match.group(1), match.group(2), match.group(3)) + duration = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds).total_seconds() else: duration = None