Ignore bug
This commit is contained in:
parent
4d0739dee6
commit
0a553c50ff
@ -256,7 +256,6 @@ public partial class DlibDotNet
|
||||
configuration.PersonBirthdayFirstYear,
|
||||
configuration.PersonBirthdayFormat,
|
||||
configuration.PersonCharacters.ToArray(),
|
||||
configuration.PersonCharactersCopyCount,
|
||||
configuration.RangeDaysDeltaTolerance,
|
||||
configuration.RangeDistanceTolerance,
|
||||
configuration.SaveSortingWithoutPerson,
|
||||
@ -802,8 +801,12 @@ public partial class DlibDotNet
|
||||
List<Item> filteredItems = GetItems(argZero, containers);
|
||||
mapLogic.SaveShortcutsForOutputResolutionsDuringMapLogic(personKeyToIds, dFacesContentDirectory, filteredItems, mappingCollection);
|
||||
}
|
||||
if (_Configuration.PersonCharactersCopyCount > 0 && !string.IsNullOrEmpty(_Configuration.PersonCharacters))
|
||||
mapLogic.CopyAtLeastOneMappedFiles(dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
||||
if (!string.IsNullOrEmpty(_Configuration.PersonCharacters))
|
||||
{
|
||||
if (_Configuration.PersonCharactersCopyCount > 0)
|
||||
mapLogic.CopyAtLeastOneMappedFiles(_Configuration.PersonCharactersCopyCount, dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
||||
mapLogic.SavePersonKeyToCount(dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
||||
}
|
||||
mapLogic.CopyManualFiles(dFacesContentDirectory, idToNormalizedRectangleToMapping);
|
||||
if (_Configuration.SaveMappedForOutputResolutions.Contains(outputResolution))
|
||||
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, d2FacePartsContentCollectionDirectory, personKeyToIds, mappingCollection, idToNormalizedRectangleToMapping, totalNotMapped);
|
||||
|
@ -15,7 +15,6 @@ public class Configuration
|
||||
public int PersonBirthdayFirstYear { init; get; }
|
||||
public string PersonBirthdayFormat { init; get; }
|
||||
public char[] PersonCharacters { init; get; }
|
||||
public int PersonCharactersCopyCount { init; get; }
|
||||
public int RangeDaysDeltaTolerance { init; get; }
|
||||
public double RangeDistanceTolerance { init; get; }
|
||||
public bool SaveSortingWithoutPerson { init; get; }
|
||||
@ -30,7 +29,6 @@ public class Configuration
|
||||
int personBirthdayFirstYear,
|
||||
string personBirthdayFormat,
|
||||
char[] personCharacters,
|
||||
int personCharactersCopyCount,
|
||||
int[] rangeDaysDeltaTolerance,
|
||||
float[] rangeDistanceTolerance,
|
||||
bool saveSortingWithoutPerson,
|
||||
@ -54,7 +52,6 @@ public class Configuration
|
||||
SaveSortingWithoutPerson = saveSortingWithoutPerson;
|
||||
SortingMinimumToUseSigma = sortingMinimumToUseSigma;
|
||||
RangeDaysDeltaTolerance = rangeDaysDeltaTolerance[1];
|
||||
PersonCharactersCopyCount = personCharactersCopyCount;
|
||||
FacePartsFileNameExtension = facePartsFileNameExtension;
|
||||
FacesHiddenFileNameExtension = facesHiddenFileNameExtension;
|
||||
}
|
||||
|
@ -800,7 +800,80 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
}
|
||||
}
|
||||
|
||||
public void CopyAtLeastOneMappedFiles(string dFacesContentDirectory, string a2PeopleSingletonDirectory, Mapping[] mappingCollection)
|
||||
private List<string> GetDirectories(string a2PeopleSingletonDirectory, Mapping[] mappingCollection)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
List<string> results = new();
|
||||
long personKey;
|
||||
string directory;
|
||||
string? directoryName;
|
||||
PersonContainer? personContainer;
|
||||
Dictionary<long, int> personKeyToCount = new();
|
||||
for (int i = 1; i < 3; i++)
|
||||
{
|
||||
foreach (Mapping mapping in mappingCollection)
|
||||
{
|
||||
if (mapping.MappingFromLocation is null || mapping.MappingFromPerson is null)
|
||||
continue;
|
||||
if (mapping.By is null or Shared.Models.Stateless.IMapLogic.Sorting)
|
||||
continue;
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.SegmentB))
|
||||
throw new NotSupportedException();
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
||||
throw new NotSupportedException();
|
||||
personKey = mapping.MappingFromPerson.PersonBirthday.Value.Ticks;
|
||||
if (mapping.MappingFromItem.ResizedFileHolder.DirectoryName is null || !mapping.MappingFromItem.ResizedFileHolder.Exists)
|
||||
continue;
|
||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||
if (directoryName is null)
|
||||
throw new NotSupportedException();
|
||||
if (!_PersonKeyToPersonContainer.TryGetValue(personKey, out personContainer))
|
||||
continue;
|
||||
if (personContainer.Char is null || !_Configuration.PersonCharacters.Contains(personContainer.Char.Value))
|
||||
continue;
|
||||
if (i == 1)
|
||||
{
|
||||
if (!personKeyToCount.ContainsKey(personKey))
|
||||
personKeyToCount.Add(personKey, 0);
|
||||
personKeyToCount[personKey]++;
|
||||
}
|
||||
else if (i == 2)
|
||||
{
|
||||
directory = Path.Combine(a2PeopleSingletonDirectory, personContainer.Char.Value.ToString(), personContainer.DisplayDirectoryName, personKeyToCount[personKey].ToString("0000"));
|
||||
if (results.Contains(directory))
|
||||
continue;
|
||||
results.Add(directory);
|
||||
}
|
||||
else
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
public void SavePersonKeyToCount(string dFacesContentDirectory, string a2PeopleSingletonDirectory, Mapping[] mappingCollection)
|
||||
{
|
||||
List<string> directories = GetDirectories(a2PeopleSingletonDirectory, mappingCollection);
|
||||
string directoryName;
|
||||
string? personNameDirectory;
|
||||
DateTime dateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(1);
|
||||
foreach (string directory in directories)
|
||||
{
|
||||
if (Directory.Exists(directory))
|
||||
continue;
|
||||
_ = Directory.CreateDirectory(directory);
|
||||
directoryName = Path.GetFileName(directory);
|
||||
personNameDirectory = Path.GetDirectoryName(directory);
|
||||
if (string.IsNullOrEmpty(personNameDirectory))
|
||||
continue;
|
||||
if (!int.TryParse(directoryName, out int count))
|
||||
continue;
|
||||
Directory.SetLastWriteTime(personNameDirectory, dateTime.AddMinutes(count));
|
||||
}
|
||||
}
|
||||
|
||||
public void CopyAtLeastOneMappedFiles(int personCharactersCopyCount, string dFacesContentDirectory, string a2PeopleSingletonDirectory, Mapping[] mappingCollection)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
@ -836,7 +909,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
personKey = mapping.MappingFromPerson.PersonBirthday.Value.Ticks;
|
||||
if (!personKeyToCount.ContainsKey(personKey))
|
||||
personKeyToCount.Add(personKey, 0);
|
||||
if (personKeyToCount[personKey] > _Configuration.PersonCharactersCopyCount)
|
||||
if (personKeyToCount[personKey] > personCharactersCopyCount)
|
||||
continue;
|
||||
if (!_PersonKeyToPersonContainer.TryGetValue(personKey, out personContainer))
|
||||
continue;
|
||||
|
@ -184,6 +184,7 @@ internal abstract class MapLogic
|
||||
List<(string, string[], string)> results = new();
|
||||
int? id;
|
||||
string[] files;
|
||||
string fileName;
|
||||
const int zero = 0;
|
||||
string[] yearDirectories;
|
||||
int? normalizedRectangle;
|
||||
@ -191,6 +192,7 @@ internal abstract class MapLogic
|
||||
string ticksDirectoryName;
|
||||
string? personFirstInitial;
|
||||
bool isReservedDirectoryName;
|
||||
List<string> distinct = new();
|
||||
string[] personKeyDirectories;
|
||||
string[] personNameDirectories;
|
||||
string[] personNameLinkDirectories;
|
||||
@ -265,6 +267,14 @@ internal abstract class MapLogic
|
||||
(id, normalizedRectangle) = IMapping.GetConverted(configuration.FacesFileNameExtension, file);
|
||||
if (id is null || normalizedRectangle is null)
|
||||
continue;
|
||||
fileName = Path.GetFileName(file);
|
||||
if (distinct.Contains(fileName))
|
||||
{
|
||||
if (!File.Exists($"{file}.dup"))
|
||||
File.Move(file, $"{file}.dup");
|
||||
continue;
|
||||
}
|
||||
distinct.Add(fileName);
|
||||
results.Add(new(personKeyFormatted, personDisplayDirectoryNames, file));
|
||||
}
|
||||
personNameLinkDirectories = Directory.GetDirectories(personFirstInitialDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
|
@ -13,6 +13,7 @@ internal abstract class PersonContainer
|
||||
List<string> distinct = new();
|
||||
string fileNameWithoutExtension;
|
||||
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
||||
results.AddRange(Directory.GetFiles(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly));
|
||||
string[] directories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
foreach (string directory in directories)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user