From: Guillaume Pellerin Date: Mon, 30 Dec 2019 17:50:17 +0000 (+0100) Subject: [kdenlive] use global title metadata for session title X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=a240bf16861f84b06a02b01c243b3c92a6575d39;p=telemeta.git [kdenlive] use global title metadata for session title --- diff --git a/telemeta/models/media.py b/telemeta/models/media.py index dd67711a..69eb2be7 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -524,14 +524,16 @@ class MediaItemRelated(MediaRelated): if self.file: if self.is_kdenlive_session(): session = KDEnLiveSession(self.file.path) - markers = session.markers(**kwargs) + title, markers = session.markers(**kwargs) for marker in markers: m = MediaItemMarker(item=self.item) m.public_id = get_random_hash() m.time = float(marker['time']) m.title = marker['comment'] m.save() - return markers + return title, markers + else: + return class Meta(MetaCore): db_table = 'media_item_related' diff --git a/telemeta/util/kdenlive/session.py b/telemeta/util/kdenlive/session.py index 448550a8..17525c61 100644 --- a/telemeta/util/kdenlive/session.py +++ b/telemeta/util/kdenlive/session.py @@ -121,6 +121,7 @@ class KDEnLiveSession(object): markers = [] i = 0 entries = self.entries_video_seconds() + title = '' for attr in self.session['children']: if 'playlist' in attr['name']: @@ -128,6 +129,8 @@ class KDEnLiveSession(object): marker = {} if 'name' in att['attributes']: name = att['attributes']['name'] + if 'docmetadata.meta.attr.title.markup' in name: + title = att['cdata'] if 'marker' in name: name = name.encode('utf8') marker_time = float(name.split(':')[-1].replace(',','.').replace(' ', '')) @@ -154,5 +157,5 @@ class KDEnLiveSession(object): markers.append(marker) i += 1 - return markers + return title, markers