diff --git a/bin/ffx.py b/bin/ffx.py index 4d5a775..b17ccea 100755 --- a/bin/ffx.py +++ b/bin/ffx.py @@ -273,11 +273,10 @@ def inspect(ctx, filename): click.echo(f"Pattern: {pattern} id={pattern.id} show={pattern.show.name} year={pattern.show.year}") db_md = pattern.getMediaDescriptor() - click.echo(f"md from db: {db_md} tags={'|'.join([f"{k}={v}" for (k,v) in db_md.getTags().items()])}") + click.echo(f"md from db: {db_md} tags={'|'.join([f"{k}={v}" for (k,v) in db_md.getTags().items()])} a_tracks={db_md.getAudioTracks()} s_tracks={db_md.getSubtitleTracks()}") - -# for d in sd: -# click.echo(f"{d['codec_name']}{' (' + str(d['channels']) + ')' if d['codec_type'] == 'audio' else ''}") + atrack0 = db_md.getAudioTracks()[0] + click.echo(f"a track0: lang={atrack0.getLanguage()} title={atrack0.getTitle()}") diff --git a/bin/ffx/model/pattern.py b/bin/ffx/model/pattern.py index d6c8bd7..1fc1fa1 100644 --- a/bin/ffx/model/pattern.py +++ b/bin/ffx/model/pattern.py @@ -26,7 +26,7 @@ class Pattern(Base): # show_id: Mapped[int] = mapped_column(ForeignKey("shows.id", ondelete="CASCADE")) # show: Mapped["Show"] = relationship(back_populates="patterns") - tracks = relationship('Track', back_populates='pattern', cascade="all, delete") + tracks = relationship('Track', back_populates='pattern', cascade="all, delete", lazy='joined') media_tags = relationship('MediaTag', back_populates='pattern', cascade="all, delete", lazy='joined') @@ -52,9 +52,14 @@ class Pattern(Base): kwargs = {} kwargs[MediaDescriptor.TAGS_KEY] = self.getTags() - md = MediaDescriptor(**kwargs) + + kwargs[MediaDescriptor.TRACK_DESCRIPTORS_KEY] = {} - # for t in self.tracks: - # md.appendTrack(t.getDescriptor()) + for track in self.tracks: - return md + if track.getType() not in kwargs[MediaDescriptor.TRACK_DESCRIPTORS_KEY].keys(): + kwargs[MediaDescriptor.TRACK_DESCRIPTORS_KEY][track.getType().label()] = [] + + kwargs[MediaDescriptor.TRACK_DESCRIPTORS_KEY][track.getType().label()].append(track.getDescriptor()) + + return MediaDescriptor(**kwargs)