diff --git a/pkg/sqlite/image.go b/pkg/sqlite/image.go index 726683a57..1e271cf73 100644 --- a/pkg/sqlite/image.go +++ b/pkg/sqlite/image.go @@ -7,11 +7,11 @@ import ( "fmt" "path/filepath" "slices" - "strconv" "github.com/jmoiron/sqlx" "github.com/stashapp/stash/pkg/models" "github.com/stashapp/stash/pkg/sliceutil" + "github.com/stashapp/stash/pkg/utils" "gopkg.in/guregu/null.v4" "gopkg.in/guregu/null.v4/zero" @@ -1131,4 +1131,3 @@ func (qb *ImageStore) FindDuplicates(ctx context.Context, distance int) ([][]*mo return result, nil } - diff --git a/pkg/utils/phash.go b/pkg/utils/phash.go index 36075742b..77fded911 100644 --- a/pkg/utils/phash.go +++ b/pkg/utils/phash.go @@ -9,8 +9,8 @@ import ( ) type Phash struct { - ID int `db:"id"` - Hash int64 `db:"phash"` + ID int `db:"id"` + Hash int64 `db:"phash"` Duration float64 `db:"duration"` Neighbors []int Bucket int diff --git a/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx b/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx index b96fab050..de6840570 100644 --- a/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx +++ b/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx @@ -39,8 +39,11 @@ const ImageDuplicateChecker: React.FC = () => { const [isSearching, setIsSearching] = useState(false); const [hasSearched, setHasSearched] = useState(false); - const [checkedImages, setCheckedImages] = useState>({}); - const [selectedImages, setSelectedImages] = useState(); + const [checkedImages, setCheckedImages] = useState>( + {} + ); + const [selectedImages, setSelectedImages] = + useState(); const [deletingImages, setDeletingImages] = useState(false); const [editingImages, setEditingImages] = useState(false); @@ -79,7 +82,9 @@ const ImageDuplicateChecker: React.FC = () => { return allGroups.slice(start, start + pageSize); }, [allGroups, currentPage, pageSize]); - const checkCount = Object.keys(checkedImages).filter((id) => checkedImages[id]).length; + const checkCount = Object.keys(checkedImages).filter( + (id) => checkedImages[id] + ).length; const handleCheck = (checked: boolean, imageID: string) => { setCheckedImages({ ...checkedImages, [imageID]: checked }); @@ -144,7 +149,9 @@ const ImageDuplicateChecker: React.FC = () => { handleCheck(e.currentTarget.checked, img.id)} + onChange={(e) => + handleCheck(e.currentTarget.checked, img.id) + } /> @@ -160,7 +167,10 @@ const ImageDuplicateChecker: React.FC = () => {
{img.title || "(No Title)"}
-
+
{img.visual_files[0]?.path}
ID: {img.id}
@@ -169,7 +179,8 @@ const ImageDuplicateChecker: React.FC = () => { - {file?.__typename === "ImageFile" || file?.__typename === "VideoFile" ? ( + {file?.__typename === "ImageFile" || + file?.__typename === "VideoFile" ? ( <> {file.width} x {file.height} @@ -252,7 +263,9 @@ const ImageDuplicateChecker: React.FC = () => { {hasSearched && !loading && !error && allGroups.length === 0 && (
-

No duplicates found with the current distance.

+

+ No duplicates found with the current distance. +

)} @@ -297,7 +310,7 @@ const ImageDuplicateChecker: React.FC = () => { { query.set("page", page.toString()); history.push({ search: query.toString() });