mirror of
https://github.com/immich-app/immich.git
synced 2024-12-28 22:51:59 +00:00
format
This commit is contained in:
parent
2315466be3
commit
48bf55dad8
5 changed files with 104 additions and 111 deletions
|
@ -105,7 +105,8 @@
|
|||
{/if}
|
||||
{/await}
|
||||
-
|
||||
{getExifCount(asset)} {$t('exif')}
|
||||
{getExifCount(asset)}
|
||||
{$t('exif')}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,6 @@ import { suggestDuplicate } from '$lib/utils/duplicate-utils';
|
|||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
|
||||
describe('choosing a duplicate', () => {
|
||||
|
||||
it('picks the asset with the largest file size', () => {
|
||||
const assets = [
|
||||
{ exifInfo: { fileSizeInByte: 300 } },
|
||||
|
@ -27,19 +26,12 @@ describe('choosing a duplicate', () => {
|
|||
});
|
||||
|
||||
it('handles assets with no exifInfo', () => {
|
||||
const assets = [
|
||||
{ exifInfo: { fileSizeInByte: 200 } },
|
||||
{},
|
||||
];
|
||||
const assets = [{ exifInfo: { fileSizeInByte: 200 } }, {}];
|
||||
expect(suggestDuplicate(assets as AssetResponseDto[])).toEqual(assets[0]);
|
||||
});
|
||||
|
||||
it('handles assets with exifInfo but no fileSizeInByte', () => {
|
||||
const assets = [
|
||||
{ exifInfo: { rating: 5, fNumber: 1 } },
|
||||
{ exifInfo: { rating: 5 } },
|
||||
];
|
||||
const assets = [{ exifInfo: { rating: 5, fNumber: 1 } }, { exifInfo: { rating: 5 } }];
|
||||
expect(suggestDuplicate(assets as AssetResponseDto[])).toEqual(assets[0]);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { getExifCount } from '$lib/utils/exif-utils';
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { sortBy } from 'lodash-es';
|
||||
import { getExifCount } from '$lib/utils/exif-utils';
|
||||
|
||||
/**
|
||||
* Suggests the best duplicate asset to keep from a list of duplicates.
|
||||
|
@ -16,10 +16,12 @@ export const suggestDuplicate = (assets: AssetResponseDto[]): AssetResponseDto |
|
|||
const assetsBySize = sortBy(assets, (asset) => asset.exifInfo?.fileSizeInByte ?? 0);
|
||||
|
||||
// All assets with the same file size as the largest asset
|
||||
const highestSizeAssets = assetsBySize.filter((asset) => asset.exifInfo?.fileSizeInByte === assetsBySize.at(-1)?.exifInfo?.fileSizeInByte);
|
||||
const highestSizeAssets = assetsBySize.filter(
|
||||
(asset) => asset.exifInfo?.fileSizeInByte === assetsBySize.at(-1)?.exifInfo?.fileSizeInByte,
|
||||
);
|
||||
|
||||
// If there are multiple assets with the same file size, return the one with the most exif data
|
||||
if(highestSizeAssets.length >= 2) {
|
||||
if (highestSizeAssets.length >= 2) {
|
||||
const assetsByExifCount = sortBy(highestSizeAssets, getExifCount);
|
||||
return assetsByExifCount.pop();
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ import { getExifCount } from '$lib/utils/exif-utils';
|
|||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
|
||||
describe('getting the exif count', () => {
|
||||
|
||||
it('returns 0 when exifInfo is undefined', () => {
|
||||
const asset = {};
|
||||
expect(getExifCount(asset as AssetResponseDto)).toBe(0);
|
||||
|
@ -27,5 +26,4 @@ describe('getting the exif count', () => {
|
|||
const asset = { exifInfo: { fileSizeInByte: 200, rating: 5, fNumber: 1, description: 'test' } };
|
||||
expect(getExifCount(asset as AssetResponseDto)).toBe(4);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue