diff --git a/bin/ffx.py b/bin/ffx.py index 96a7d06..4d5a775 100755 --- a/bin/ffx.py +++ b/bin/ffx.py @@ -269,6 +269,13 @@ def inspect(ctx, filename): click.echo(f"Show Id: {fp.getShowId()}") + pattern = fp.getPattern() + 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()])}") + + # for d in sd: # click.echo(f"{d['codec_name']}{' (' + str(d['channels']) + ')' if d['codec_type'] == 'audio' else ''}") diff --git a/bin/ffx/file_properties.py b/bin/ffx/file_properties.py index d0106b9..d480867 100644 --- a/bin/ffx/file_properties.py +++ b/bin/ffx/file_properties.py @@ -217,4 +217,6 @@ class FileProperties(): def getShowId(self) -> int: return self.__pattern.getShowId() if self.__pattern is not None else -1 + def getPattern(self) -> Pattern: + return self.__pattern \ No newline at end of file diff --git a/bin/ffx/model/pattern.py b/bin/ffx/model/pattern.py index ddf32d4..d6c8bd7 100644 --- a/bin/ffx/model/pattern.py +++ b/bin/ffx/model/pattern.py @@ -20,7 +20,7 @@ class Pattern(Base): # v1.x show_id = Column(Integer, ForeignKey('shows.id', ondelete="CASCADE")) - show = relationship('Show', back_populates='patterns') + show = relationship('Show', back_populates='patterns', lazy='joined') # v2.0 # show_id: Mapped[int] = mapped_column(ForeignKey("shows.id", ondelete="CASCADE")) @@ -29,7 +29,7 @@ class Pattern(Base): tracks = relationship('Track', back_populates='pattern', cascade="all, delete") - media_tags = relationship('MediaTag', back_populates='pattern', cascade="all, delete") + media_tags = relationship('MediaTag', back_populates='pattern', cascade="all, delete", lazy='joined') def getId(self): @@ -50,9 +50,11 @@ class Pattern(Base): def getMediaDescriptor(self): - md = MediaDescriptor(tags = self.getDescriptor()['tags']) + kwargs = {} + kwargs[MediaDescriptor.TAGS_KEY] = self.getTags() + md = MediaDescriptor(**kwargs) - for t in self.tracks: - md.appendTrack(t.getDescriptor()) + # for t in self.tracks: + # md.appendTrack(t.getDescriptor()) return md