mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-07-18 02:24:07 +00:00
allow duplicate import
This commit is contained in:
parent
fe673c9e23
commit
2a4574ef36
1 changed files with 14 additions and 4 deletions
|
|
@ -87,7 +87,11 @@ class _ImportFromGalleryViewState extends State<ImportFromGalleryView> {
|
||||||
|
|
||||||
final exists = await twonlyDB.mediaFilesDao.getMediaByHash(hash);
|
final exists = await twonlyDB.mediaFilesDao.getMediaByHash(hash);
|
||||||
if (exists.isNotEmpty) {
|
if (exists.isNotEmpty) {
|
||||||
duplicated += 1;
|
final mediaFile = exists.first;
|
||||||
|
final mediaService = MediaFileService(mediaFile);
|
||||||
|
await mediaService.storedPath.parent.create(recursive: true);
|
||||||
|
await File(mediaService.storedPath.path).writeAsBytes(bytes);
|
||||||
|
importedCount++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -371,13 +375,17 @@ class _ImportFromGalleryViewState extends State<ImportFromGalleryView> {
|
||||||
try {
|
try {
|
||||||
final assetName = await asset.titleAsync;
|
final assetName = await asset.titleAsync;
|
||||||
final dotIndex = assetName.lastIndexOf('.');
|
final dotIndex = assetName.lastIndexOf('.');
|
||||||
final baseName = dotIndex != -1 ? assetName.substring(0, dotIndex) : assetName;
|
final baseName = dotIndex != -1
|
||||||
|
? assetName.substring(0, dotIndex)
|
||||||
|
: assetName;
|
||||||
|
|
||||||
final uuidRegex = RegExp(
|
final uuidRegex = RegExp(
|
||||||
r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$',
|
r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$',
|
||||||
);
|
);
|
||||||
if (uuidRegex.hasMatch(baseName)) {
|
if (uuidRegex.hasMatch(baseName)) {
|
||||||
final existing = await twonlyDB.mediaFilesDao.getMediaFileById(baseName);
|
final existing = await twonlyDB.mediaFilesDao.getMediaFileById(
|
||||||
|
baseName,
|
||||||
|
);
|
||||||
if (existing != null) {
|
if (existing != null) {
|
||||||
final mediaService = MediaFileService(existing);
|
final mediaService = MediaFileService(existing);
|
||||||
if (!mediaService.storedPath.existsSync()) {
|
if (!mediaService.storedPath.existsSync()) {
|
||||||
|
|
@ -388,7 +396,9 @@ class _ImportFromGalleryViewState extends State<ImportFromGalleryView> {
|
||||||
stored: const Value(true),
|
stored: const Value(true),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
mediaFile = await twonlyDB.mediaFilesDao.getMediaFileById(baseName);
|
mediaFile = await twonlyDB.mediaFilesDao.getMediaFileById(
|
||||||
|
baseName,
|
||||||
|
);
|
||||||
isRestored = true;
|
isRestored = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue