item = ForeignKey('MediaItem', related_name="related", verbose_name=_('item'))
- def save(self, force_insert=False, force_update=False, author=None):
- super(MediaItemRelated, self).save(force_insert, force_update)
-
- # Parse KDEnLive session (first marker is the title of the item,
- # marker author given as a keyword)
- if self.is_kdenlive_session():
- session = KDEnLiveSession(self.file.path)
- markers = session.markers_relative()
- i = 0
- for marker in markers:
- if i == 0:
- self.item.title = marker['comment']
- self.item.save()
- m = MediaItemMarker(item=self.item)
- m.public_id = get_random_hash()
- m.time = float(marker['time'])
- m.title = marker['comment']
- m.save()
- i += 1
+ def save(self, force_insert=False, force_update=False, using=False):
+ super(MediaItemRelated, self).save(force_insert, force_update)
+
+ def parse_markers(self, **kwargs):
+ # Parse KDEnLive session
+ if self.file:
+ if self.is_kdenlive_session():
+ session = KDEnLiveSession(self.file.path)
+ 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
class Meta(MetaCore):
db_table = 'media_item_related'