Skip to content

New: Show Remote Duration in Tagger - #7193

Open
smith113-p wants to merge 2 commits into
stashapp:developfrom
smith113-p:link
Open

smith113-p wants to merge 2 commits into
stashapp:developfrom
smith113-p:link

Conversation

@smith113-p

@smith113-p smith113-p commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Description

In scene tagger, if the stash box provided a duration, shows it on top of the scene image similar to how the local scene duration is displayed.

This is especially useful if the remote has a duration but no fingerprints (this can frequently happen with TPDB). Even when there are fingerprints, it can be useful to easily see exactly how the local duration differs from the remote duration.

Related Issue

Fixes #7201 (this was also a secondary request in #4482)

Testing

Manually scraped scenes with and without duration

Screenshots

Before:
image

After:
Screenshot 2026-08-31 142252

Checklist

  • I have read and understood the Contributing document.
  • I have read and understood the AI Usage Policy document.
  • [n/a] I have made corresponding changes to the documentation (if applicable).

AI Usage Disclosure

  • I have used AI tools to assist with this pull request, and I have disclosed the tools and how I used them below.

I used Codex/ChatGPT to write some of this code, especially the CSS. I did read and understand every line of the PR, though.

Additional Context

@smith113-p

Copy link
Copy Markdown
Contributor Author

FYI here is how it looks when the cover image is landscape:
image

Here is how it looks when no duration is available:
image

@DogmaDragon DogmaDragon added noncompliance Doesn't follow the template or other guidelines. and removed noncompliance Doesn't follow the template or other guidelines. labels Sep 2, 2026
@Gykes Gykes changed the title Show remote duration in tagger New: Show Remote Duration in Tagger Sep 8, 2026
@Gykes Gykes added this to the Version 0.32.0 milestone Sep 8, 2026
@Gykes Gykes added the feature Pull requests that add a new feature or functionality label Sep 8, 2026

@Gykes Gykes left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a quick static check. No actual testing was done.

alt=""
className="align-self-center scene-image"
/>
<div className="scene-image-overlay-container">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is nested inside the cover image. If there is no cover image will it return nothing? Is that expected?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I would say this is expected. If we have no image we would need a different kind of UI. I'm not immediately sure what that UI would look like, and it is rare to not have an image (rare on TPDB, almost never happens on stashdb), so it is probably not worth the code complexity.

Comment on lines +557 to +565
<div className="scene-image-overlay-container">
<img
src={scene.image}
alt=""
className="align-self-center scene-image"
/>
{scene.duration ? (
<div className="scene-specs-overlay">
<span className="overlay-duration">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "" branch would render and empty text node rather than nothing. I think returning null or just using && is a better way to do this.

Something like so:

 {scene.duration && (
   <div className="scene-specs-overlay">
     <span className="overlay-duration">
       {TextUtils.secondsToTimestamp(scene.duration)}
     </span>
   </div>
 )}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. I copied this from

{file.duration > 0 ? (
...

@smith113-p smith113-p left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for the delay, see responses below

Comment on lines +557 to +565
<div className="scene-image-overlay-container">
<img
src={scene.image}
alt=""
className="align-self-center scene-image"
/>
{scene.duration ? (
<div className="scene-specs-overlay">
<span className="overlay-duration">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. I copied this from

{file.duration > 0 ? (
...

alt=""
className="align-self-center scene-image"
/>
<div className="scene-image-overlay-container">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I would say this is expected. If we have no image we would need a different kind of UI. I'm not immediately sure what that UI would look like, and it is rare to not have an image (rare on TPDB, almost never happens on stashdb), so it is probably not worth the code complexity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Pull requests that add a new feature or functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show remote duration in scene tagger

3 participants