nef Support
This commit is contained in:
parent
ddcb5b479a
commit
141ed4bf37
@ -19,6 +19,13 @@ docker compose exec photoprism photoprism backup -i -f
|
|||||||
docker compose exec photoprism photoprism restore -i -f
|
docker compose exec photoprism photoprism restore -i -f
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- After changes to code:
|
||||||
|
- 50 ~230 and still has wrong
|
||||||
|
- 66 198 and still has wrong
|
||||||
|
- 75 145 and still has wrong
|
||||||
|
- 85 81 and still has wrong (Bodhi and Hudson)
|
||||||
|
- 90 50 and still has wrong (Chelsea and Hudson)
|
||||||
|
|
||||||
## Sub-tasks
|
## Sub-tasks
|
||||||
|
|
||||||
- [x] Backup DB
|
- [x] Backup DB
|
||||||
|
@ -116,7 +116,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -144,7 +146,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"VerifyToSeason": [
|
"VerifyToSeason": [
|
||||||
". 2000",
|
". 2000",
|
||||||
|
@ -118,7 +118,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
|
@ -89,7 +89,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -117,7 +119,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -118,7 +120,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"VerifyToSeason": [
|
"VerifyToSeason": [
|
||||||
". 2000",
|
". 2000",
|
||||||
|
@ -91,7 +91,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -119,7 +121,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -114,7 +116,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -116,7 +118,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -210,7 +212,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidResolutions": [
|
"ValidResolutions": [
|
||||||
"Original",
|
"Original",
|
||||||
|
@ -89,7 +89,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -117,7 +119,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -67,7 +69,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -156,7 +160,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -184,7 +190,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -107,7 +107,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -135,7 +137,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"VerifyToSeason": [
|
"VerifyToSeason": [
|
||||||
". 2000",
|
". 2000",
|
||||||
|
@ -144,7 +144,7 @@ public class Rename
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<(FileHolder, string, string)> GetToDoCollection(ProgressBar progressBar, string[] files)
|
private List<(FileHolder, string, string)> GetToDoCollection(ProgressBar progressBar, string[] files, bool nefPresent)
|
||||||
{
|
{
|
||||||
List<(FileHolder, string, string)> results = new();
|
List<(FileHolder, string, string)> results = new();
|
||||||
int? id;
|
int? id;
|
||||||
@ -192,6 +192,10 @@ public class Rename
|
|||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, directory, checkFile));
|
results.Add(new(fileHolder, directory, checkFile));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), directory, $"{checkFile[..^4]}.tif"));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), directory, $"{checkFile[..^4]}.nef"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (file.EndsWith(".jpg.del"))
|
if (file.EndsWith(".jpg.del"))
|
||||||
@ -203,6 +207,10 @@ public class Rename
|
|||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, directory, checkFile));
|
results.Add(new(fileHolder, directory, checkFile));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), directory, $"{checkFile[..^4]}.tif"));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), directory, $"{checkFile[..^4]}.nef"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (fileHolder.ExtensionLowered == ".id" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryName is null)
|
if (fileHolder.ExtensionLowered == ".id" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryName is null)
|
||||||
@ -261,6 +269,10 @@ public class Rename
|
|||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, directory, checkFile));
|
results.Add(new(fileHolder, directory, checkFile));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), directory, $"{checkFile[..^4]}.tif"));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), directory, $"{checkFile[..^4]}.nef"));
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
File.Move(fileHolder.FullName, checkFile);
|
File.Move(fileHolder.FullName, checkFile);
|
||||||
@ -307,7 +319,7 @@ public class Rename
|
|||||||
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
||||||
seasonDirectory = Path.Combine(fileHolder.DirectoryName, $"{dateTime.Year}.{season} {seasonName}");
|
seasonDirectory = Path.Combine(fileHolder.DirectoryName, $"{dateTime.Year}.{season} {seasonName}");
|
||||||
}
|
}
|
||||||
if (seasonDirectory is null || isWrongYear is null || isWrongYear.Value)
|
if (seasonDirectory is null || (isWrongYear is not null && isWrongYear.Value))
|
||||||
{
|
{
|
||||||
if (metadataMinimumDateTime is null)
|
if (metadataMinimumDateTime is null)
|
||||||
break;
|
break;
|
||||||
@ -319,6 +331,10 @@ public class Rename
|
|||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, directory, checkFile));
|
results.Add(new(fileHolder, directory, checkFile));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), directory, $"{checkFile[..^4]}.tif"));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), directory, $"{checkFile[..^4]}.nef"));
|
||||||
if (ffmpegFiles is not null)
|
if (ffmpegFiles is not null)
|
||||||
{
|
{
|
||||||
foreach (string ffmpegFile in ffmpegFiles)
|
foreach (string ffmpegFile in ffmpegFiles)
|
||||||
@ -349,6 +365,10 @@ public class Rename
|
|||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, seasonDirectory, checkFile));
|
results.Add(new(fileHolder, seasonDirectory, checkFile));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), seasonDirectory, $"{checkFile[..^4]}.tif"));
|
||||||
|
if (nefPresent)
|
||||||
|
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), seasonDirectory, $"{checkFile[..^4]}.nef"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
@ -459,6 +479,7 @@ public class Rename
|
|||||||
List<string> results = new();
|
List<string> results = new();
|
||||||
string[] files;
|
string[] files;
|
||||||
string message;
|
string message;
|
||||||
|
bool nefPresent;
|
||||||
List<string> allFiles;
|
List<string> allFiles;
|
||||||
ProgressBar progressBar;
|
ProgressBar progressBar;
|
||||||
List<string> distinctDirectories = new();
|
List<string> distinctDirectories = new();
|
||||||
@ -478,10 +499,17 @@ public class Rename
|
|||||||
progressBar = new(files.Length, message, options);
|
progressBar = new(files.Length, message, options);
|
||||||
if (!files.Any())
|
if (!files.Any())
|
||||||
continue;
|
continue;
|
||||||
if (!_AppSettings.RenameUndo)
|
if (_AppSettings.RenameUndo)
|
||||||
toDoCollection = GetToDoCollection(progressBar, files);
|
|
||||||
else
|
|
||||||
toDoCollection = GetRenameUndoToDoCollection(progressBar, files);
|
toDoCollection = GetRenameUndoToDoCollection(progressBar, files);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nefPresent = files.Any(l => l.EndsWith(".NEF"));
|
||||||
|
if (nefPresent)
|
||||||
|
files = (from l in files where l.EndsWith(".JPG") select l).ToArray();
|
||||||
|
if (!files.Any())
|
||||||
|
continue;
|
||||||
|
toDoCollection = GetToDoCollection(progressBar, files, nefPresent);
|
||||||
|
}
|
||||||
verifiedToDoCollection = new();
|
verifiedToDoCollection = new();
|
||||||
foreach ((FileHolder fileHolder, string directory, string to) in toDoCollection)
|
foreach ((FileHolder fileHolder, string directory, string to) in toDoCollection)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +89,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
],
|
],
|
||||||
"ValidMetadataExtensions": [
|
"ValidMetadataExtensions": [
|
||||||
".3gp",
|
".3gp",
|
||||||
@ -117,7 +119,9 @@
|
|||||||
".png",
|
".png",
|
||||||
".PNG",
|
".PNG",
|
||||||
".tiff",
|
".tiff",
|
||||||
".TIFF"
|
".TIFF",
|
||||||
|
".tif",
|
||||||
|
".TIF"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user