mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-02 18:18:39 +00:00
Improvements to CleanupBrokenPhotosMaintenanceJob
This commit is contained in:
parent
57ba816052
commit
f680c90d47
2 changed files with 54 additions and 12 deletions
|
@ -1,8 +1,11 @@
|
||||||
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using LBPUnion.ProjectLighthouse.Helpers;
|
using LBPUnion.ProjectLighthouse.Helpers;
|
||||||
using LBPUnion.ProjectLighthouse.Types;
|
using LBPUnion.ProjectLighthouse.Types;
|
||||||
|
using LBPUnion.ProjectLighthouse.Types.Files;
|
||||||
|
|
||||||
namespace LBPUnion.ProjectLighthouse.Maintenance.MaintenanceJobs
|
namespace LBPUnion.ProjectLighthouse.Maintenance.MaintenanceJobs
|
||||||
{
|
{
|
||||||
|
@ -17,22 +20,49 @@ namespace LBPUnion.ProjectLighthouse.Maintenance.MaintenanceJobs
|
||||||
{
|
{
|
||||||
foreach (Photo photo in this.database.Photos)
|
foreach (Photo photo in this.database.Photos)
|
||||||
{
|
{
|
||||||
bool hashNullOrEmpty = string.IsNullOrEmpty
|
bool hashNullOrEmpty = false;
|
||||||
(photo.LargeHash) ||
|
bool noHashesExist = false;
|
||||||
string.IsNullOrEmpty(photo.MediumHash) ||
|
bool largeHashIsInvalidFile = false;
|
||||||
string.IsNullOrEmpty(photo.SmallHash) ||
|
|
||||||
string.IsNullOrEmpty(photo.PlanHash);
|
|
||||||
|
|
||||||
bool allHashesDontExist = FileHelper.ResourcesNotUploaded(photo.LargeHash, photo.MediumHash, photo.SmallHash, photo.PlanHash).Length != 0;
|
hashNullOrEmpty = string.IsNullOrEmpty
|
||||||
|
(photo.LargeHash) ||
|
||||||
|
string.IsNullOrEmpty(photo.MediumHash) ||
|
||||||
|
string.IsNullOrEmpty(photo.SmallHash) ||
|
||||||
|
string.IsNullOrEmpty(photo.PlanHash);
|
||||||
|
if (hashNullOrEmpty) goto removePhoto;
|
||||||
|
|
||||||
if (hashNullOrEmpty || allHashesDontExist)
|
List<string> hashes = new()
|
||||||
{
|
{
|
||||||
Console.WriteLine
|
photo.LargeHash,
|
||||||
(
|
photo.MediumHash,
|
||||||
$"Removing photo (id: {photo.PhotoId}): {nameof(hashNullOrEmpty)}: {hashNullOrEmpty}, {nameof(allHashesDontExist)}: {allHashesDontExist}"
|
photo.SmallHash,
|
||||||
);
|
photo.PlanHash,
|
||||||
this.database.Photos.Remove(photo);
|
};
|
||||||
|
|
||||||
|
noHashesExist = FileHelper.ResourcesNotUploaded(hashes.ToArray()).Length != 0;
|
||||||
|
if (noHashesExist) goto removePhoto;
|
||||||
|
|
||||||
|
LbpFile? file = LbpFile.FromHash(photo.LargeHash);
|
||||||
|
// Console.WriteLine(file.FileType, );
|
||||||
|
if (file == null || file.FileType != LbpFileType.Jpeg && file.FileType != LbpFileType.Png)
|
||||||
|
{
|
||||||
|
largeHashIsInvalidFile = true;
|
||||||
|
goto removePhoto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
|
||||||
|
removePhoto:
|
||||||
|
|
||||||
|
Console.WriteLine
|
||||||
|
(
|
||||||
|
$"Removing photo (id: {photo.PhotoId}): " +
|
||||||
|
$"{nameof(hashNullOrEmpty)}: {hashNullOrEmpty}, " +
|
||||||
|
$"{nameof(noHashesExist)}: {noHashesExist}, " +
|
||||||
|
$"{nameof(largeHashIsInvalidFile)}: {largeHashIsInvalidFile}"
|
||||||
|
);
|
||||||
|
|
||||||
|
this.database.Photos.Remove(photo);
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.database.SaveChangesAsync();
|
await this.database.SaveChangesAsync();
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#nullable enable
|
||||||
|
using System.IO;
|
||||||
using LBPUnion.ProjectLighthouse.Helpers;
|
using LBPUnion.ProjectLighthouse.Helpers;
|
||||||
|
|
||||||
namespace LBPUnion.ProjectLighthouse.Types.Files
|
namespace LBPUnion.ProjectLighthouse.Types.Files
|
||||||
|
@ -20,5 +22,15 @@ namespace LBPUnion.ProjectLighthouse.Types.Files
|
||||||
this.Data = data;
|
this.Data = data;
|
||||||
this.FileType = FileHelper.DetermineFileType(this.Data);
|
this.FileType = FileHelper.DetermineFileType(this.Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static LbpFile? FromHash(string hash)
|
||||||
|
{
|
||||||
|
string path = FileHelper.GetResourcePath(hash);
|
||||||
|
if (!File.Exists(path)) return null;
|
||||||
|
|
||||||
|
byte[] data = File.ReadAllBytes(path);
|
||||||
|
|
||||||
|
return new LbpFile(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue