Ignore bug
This commit is contained in:
parent
4d0739dee6
commit
0a553c50ff
@ -256,7 +256,6 @@ public partial class DlibDotNet
|
|||||||
configuration.PersonBirthdayFirstYear,
|
configuration.PersonBirthdayFirstYear,
|
||||||
configuration.PersonBirthdayFormat,
|
configuration.PersonBirthdayFormat,
|
||||||
configuration.PersonCharacters.ToArray(),
|
configuration.PersonCharacters.ToArray(),
|
||||||
configuration.PersonCharactersCopyCount,
|
|
||||||
configuration.RangeDaysDeltaTolerance,
|
configuration.RangeDaysDeltaTolerance,
|
||||||
configuration.RangeDistanceTolerance,
|
configuration.RangeDistanceTolerance,
|
||||||
configuration.SaveSortingWithoutPerson,
|
configuration.SaveSortingWithoutPerson,
|
||||||
@ -802,8 +801,12 @@ public partial class DlibDotNet
|
|||||||
List<Item> filteredItems = GetItems(argZero, containers);
|
List<Item> filteredItems = GetItems(argZero, containers);
|
||||||
mapLogic.SaveShortcutsForOutputResolutionsDuringMapLogic(personKeyToIds, dFacesContentDirectory, filteredItems, mappingCollection);
|
mapLogic.SaveShortcutsForOutputResolutionsDuringMapLogic(personKeyToIds, dFacesContentDirectory, filteredItems, mappingCollection);
|
||||||
}
|
}
|
||||||
if (_Configuration.PersonCharactersCopyCount > 0 && !string.IsNullOrEmpty(_Configuration.PersonCharacters))
|
if (!string.IsNullOrEmpty(_Configuration.PersonCharacters))
|
||||||
mapLogic.CopyAtLeastOneMappedFiles(dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
{
|
||||||
|
if (_Configuration.PersonCharactersCopyCount > 0)
|
||||||
|
mapLogic.CopyAtLeastOneMappedFiles(_Configuration.PersonCharactersCopyCount, dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
||||||
|
mapLogic.SavePersonKeyToCount(dFacesContentDirectory, a2PeopleSingletonDirectory, mappingCollection);
|
||||||
|
}
|
||||||
mapLogic.CopyManualFiles(dFacesContentDirectory, idToNormalizedRectangleToMapping);
|
mapLogic.CopyManualFiles(dFacesContentDirectory, idToNormalizedRectangleToMapping);
|
||||||
if (_Configuration.SaveMappedForOutputResolutions.Contains(outputResolution))
|
if (_Configuration.SaveMappedForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, d2FacePartsContentCollectionDirectory, personKeyToIds, mappingCollection, idToNormalizedRectangleToMapping, totalNotMapped);
|
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, d2FacePartsContentCollectionDirectory, personKeyToIds, mappingCollection, idToNormalizedRectangleToMapping, totalNotMapped);
|
||||||
|
@ -15,7 +15,6 @@ public class Configuration
|
|||||||
public int PersonBirthdayFirstYear { init; get; }
|
public int PersonBirthdayFirstYear { init; get; }
|
||||||
public string PersonBirthdayFormat { init; get; }
|
public string PersonBirthdayFormat { init; get; }
|
||||||
public char[] PersonCharacters { init; get; }
|
public char[] PersonCharacters { init; get; }
|
||||||
public int PersonCharactersCopyCount { init; get; }
|
|
||||||
public int RangeDaysDeltaTolerance { init; get; }
|
public int RangeDaysDeltaTolerance { init; get; }
|
||||||
public double RangeDistanceTolerance { init; get; }
|
public double RangeDistanceTolerance { init; get; }
|
||||||
public bool SaveSortingWithoutPerson { init; get; }
|
public bool SaveSortingWithoutPerson { init; get; }
|
||||||
@ -30,7 +29,6 @@ public class Configuration
|
|||||||
int personBirthdayFirstYear,
|
int personBirthdayFirstYear,
|
||||||
string personBirthdayFormat,
|
string personBirthdayFormat,
|
||||||
char[] personCharacters,
|
char[] personCharacters,
|
||||||
int personCharactersCopyCount,
|
|
||||||
int[] rangeDaysDeltaTolerance,
|
int[] rangeDaysDeltaTolerance,
|
||||||
float[] rangeDistanceTolerance,
|
float[] rangeDistanceTolerance,
|
||||||
bool saveSortingWithoutPerson,
|
bool saveSortingWithoutPerson,
|
||||||
@ -54,7 +52,6 @@ public class Configuration
|
|||||||
SaveSortingWithoutPerson = saveSortingWithoutPerson;
|
SaveSortingWithoutPerson = saveSortingWithoutPerson;
|
||||||
SortingMinimumToUseSigma = sortingMinimumToUseSigma;
|
SortingMinimumToUseSigma = sortingMinimumToUseSigma;
|
||||||
RangeDaysDeltaTolerance = rangeDaysDeltaTolerance[1];
|
RangeDaysDeltaTolerance = rangeDaysDeltaTolerance[1];
|
||||||
PersonCharactersCopyCount = personCharactersCopyCount;
|
|
||||||
FacePartsFileNameExtension = facePartsFileNameExtension;
|
FacePartsFileNameExtension = facePartsFileNameExtension;
|
||||||
FacesHiddenFileNameExtension = facesHiddenFileNameExtension;
|
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)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
@ -836,7 +909,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
personKey = mapping.MappingFromPerson.PersonBirthday.Value.Ticks;
|
personKey = mapping.MappingFromPerson.PersonBirthday.Value.Ticks;
|
||||||
if (!personKeyToCount.ContainsKey(personKey))
|
if (!personKeyToCount.ContainsKey(personKey))
|
||||||
personKeyToCount.Add(personKey, 0);
|
personKeyToCount.Add(personKey, 0);
|
||||||
if (personKeyToCount[personKey] > _Configuration.PersonCharactersCopyCount)
|
if (personKeyToCount[personKey] > personCharactersCopyCount)
|
||||||
continue;
|
continue;
|
||||||
if (!_PersonKeyToPersonContainer.TryGetValue(personKey, out personContainer))
|
if (!_PersonKeyToPersonContainer.TryGetValue(personKey, out personContainer))
|
||||||
continue;
|
continue;
|
||||||
|
@ -184,6 +184,7 @@ internal abstract class MapLogic
|
|||||||
List<(string, string[], string)> results = new();
|
List<(string, string[], string)> results = new();
|
||||||
int? id;
|
int? id;
|
||||||
string[] files;
|
string[] files;
|
||||||
|
string fileName;
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
string[] yearDirectories;
|
string[] yearDirectories;
|
||||||
int? normalizedRectangle;
|
int? normalizedRectangle;
|
||||||
@ -191,6 +192,7 @@ internal abstract class MapLogic
|
|||||||
string ticksDirectoryName;
|
string ticksDirectoryName;
|
||||||
string? personFirstInitial;
|
string? personFirstInitial;
|
||||||
bool isReservedDirectoryName;
|
bool isReservedDirectoryName;
|
||||||
|
List<string> distinct = new();
|
||||||
string[] personKeyDirectories;
|
string[] personKeyDirectories;
|
||||||
string[] personNameDirectories;
|
string[] personNameDirectories;
|
||||||
string[] personNameLinkDirectories;
|
string[] personNameLinkDirectories;
|
||||||
@ -265,6 +267,14 @@ internal abstract class MapLogic
|
|||||||
(id, normalizedRectangle) = IMapping.GetConverted(configuration.FacesFileNameExtension, file);
|
(id, normalizedRectangle) = IMapping.GetConverted(configuration.FacesFileNameExtension, file);
|
||||||
if (id is null || normalizedRectangle is null)
|
if (id is null || normalizedRectangle is null)
|
||||||
continue;
|
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));
|
results.Add(new(personKeyFormatted, personDisplayDirectoryNames, file));
|
||||||
}
|
}
|
||||||
personNameLinkDirectories = Directory.GetDirectories(personFirstInitialDirectory, "*", SearchOption.TopDirectoryOnly);
|
personNameLinkDirectories = Directory.GetDirectories(personFirstInitialDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
|
@ -13,6 +13,7 @@ internal abstract class PersonContainer
|
|||||||
List<string> distinct = new();
|
List<string> distinct = new();
|
||||||
string fileNameWithoutExtension;
|
string fileNameWithoutExtension;
|
||||||
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
||||||
|
results.AddRange(Directory.GetFiles(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly));
|
||||||
string[] directories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] directories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
foreach (string directory in directories)
|
foreach (string directory in directories)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user