mirror of
https://github.com/immich-app/immich.git
synced 2026-06-20 21:01:37 +08:00
Some checks are pending
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Docker / Build and Push (., cpu, server/Dockerfile, immich-server, linux/amd64,linux/arm64) (push) Waiting to run
Docker / Build and Push (machine-learning, armnn, machine-learning/Dockerfile, immich-machine-learning, linux/arm64, -armnn) (push) Waiting to run
Docker / Build and Push (machine-learning, cpu, machine-learning/Dockerfile, immich-machine-learning, linux/amd64,linux/arm64) (push) Waiting to run
Docker / Build and Push (machine-learning, cuda, machine-learning/Dockerfile, immich-machine-learning, linux/amd64, -cuda) (push) Waiting to run
Docker / Build and Push (machine-learning, openvino, machine-learning/Dockerfile, immich-machine-learning, linux/amd64, -openvino) (push) Waiting to run
Static Code Analysis / Run Dart Code Analysis (push) Waiting to run
Test / Server (push) Waiting to run
Test / CLI (push) Waiting to run
Test / Web (push) Waiting to run
Test / End-to-End Tests (push) Waiting to run
Test / Mobile (push) Waiting to run
Test / Machine Learning (push) Waiting to run
Test / ShellCheck (push) Waiting to run
Test / OpenAPI Clients (push) Waiting to run
Test / TypeORM Checks (push) Waiting to run
82 lines
2.2 KiB
Dart
82 lines
2.2 KiB
Dart
import 'package:immich_mobile/entities/album.entity.dart';
|
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
import 'package:immich_mobile/entities/store.entity.dart';
|
|
import 'package:isar/isar.dart';
|
|
import 'package:openapi/api.dart';
|
|
|
|
String getThumbnailUrl(
|
|
final Asset asset, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
return getThumbnailUrlForRemoteId(asset.remoteId!, type: type);
|
|
}
|
|
|
|
String getThumbnailCacheKey(
|
|
final Asset asset, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
return getThumbnailCacheKeyForRemoteId(asset.remoteId!, type: type);
|
|
}
|
|
|
|
String getThumbnailCacheKeyForRemoteId(
|
|
final String id, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
if (type == AssetMediaSize.thumbnail) {
|
|
return 'thumbnail-image-$id';
|
|
} else {
|
|
return '${id}_previewStage';
|
|
}
|
|
}
|
|
|
|
String getAlbumThumbnailUrl(
|
|
final Album album, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
if (album.thumbnail.value?.remoteId == null) {
|
|
return '';
|
|
}
|
|
return getThumbnailUrlForRemoteId(
|
|
album.thumbnail.value!.remoteId!,
|
|
type: type,
|
|
);
|
|
}
|
|
|
|
String getAlbumThumbNailCacheKey(
|
|
final Album album, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
if (album.thumbnail.value?.remoteId == null) {
|
|
return '';
|
|
}
|
|
return getThumbnailCacheKeyForRemoteId(
|
|
album.thumbnail.value!.remoteId!,
|
|
type: type,
|
|
);
|
|
}
|
|
|
|
String getImageUrl(final Asset asset) {
|
|
return getImageUrlFromId(asset.remoteId!);
|
|
}
|
|
|
|
String getImageUrlFromId(final String id) {
|
|
return '${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail?size=preview';
|
|
}
|
|
|
|
String getImageCacheKey(final Asset asset) {
|
|
// Assets from response DTOs do not have an isar id, querying which would give us the default autoIncrement id
|
|
final isFromDto = asset.id == Isar.autoIncrement;
|
|
return '${isFromDto ? asset.remoteId : asset.id}_fullStage';
|
|
}
|
|
|
|
String getThumbnailUrlForRemoteId(
|
|
final String id, {
|
|
AssetMediaSize type = AssetMediaSize.thumbnail,
|
|
}) {
|
|
return '${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail?size=${type.value}';
|
|
}
|
|
|
|
String getFaceThumbnailUrl(final String personId) {
|
|
return '${Store.get(StoreKey.serverEndpoint)}/people/$personId/thumbnail';
|
|
}
|