From a240bf16861f84b06a02b01c243b3c92a6575d39 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 30 Dec 2019 18:50:17 +0100 Subject: [PATCH] [kdenlive] use global title metadata for session title --- telemeta/models/media.py | 6 ++++-- telemeta/util/kdenlive/session.py | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) 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 -- 2.39.5