mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-05-24 00:52:23 -04:00
Clean up and fixed a parsing case.
This commit is contained in:
parent
aaedb11836
commit
a501e50c98
@ -100,6 +100,7 @@ namespace API.Tests
|
||||
[InlineData("Kedouin Makoto - Corpse Party Musume, Chapter 12", "Kedouin Makoto - Corpse Party Musume")]
|
||||
[InlineData("Kedouin Makoto - Corpse Party Musume, Chapter 09", "Kedouin Makoto - Corpse Party Musume")]
|
||||
[InlineData("Goblin Slayer Side Story - Year One 025.5", "Goblin Slayer Side Story - Year One")]
|
||||
[InlineData("Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire)", "Goblin Slayer - Brand New Day")]
|
||||
public void ParseSeriesTest(string filename, string expected)
|
||||
{
|
||||
Assert.Equal(expected, ParseSeries(filename));
|
||||
@ -294,6 +295,14 @@ namespace API.Tests
|
||||
FullFilePath = filepath
|
||||
});
|
||||
|
||||
filepath = @"E:\Manga\Goblin Slayer\Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire).cbz";
|
||||
expected.Add(filepath, new ParserInfo
|
||||
{
|
||||
Series = "Goblin Slayer - Brand New Day", Volumes = "0", Edition = "",
|
||||
Chapters = "6.5", Filename = "Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire).cbz", Format = MangaFormat.Archive,
|
||||
FullFilePath = filepath
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -59,42 +59,42 @@ namespace API.Tests.Services
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExistingOrDefault_Should_BeFromLibrary()
|
||||
{
|
||||
var allSeries = new List<Series>()
|
||||
{
|
||||
new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
};
|
||||
Assert.Equal(_libraryMock.Series.ElementAt(0).Id, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker Than Black").Id);
|
||||
Assert.Equal(_libraryMock.Series.ElementAt(0).Id, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker than Black").Id);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExistingOrDefault_Should_BeFromAllSeries()
|
||||
{
|
||||
var allSeries = new List<Series>()
|
||||
{
|
||||
new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
};
|
||||
Assert.Equal(3, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker Than Black - Some Extension").Id);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExistingOrDefault_Should_BeNull()
|
||||
{
|
||||
var allSeries = new List<Series>()
|
||||
{
|
||||
new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
};
|
||||
Assert.Null(ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Non existing series"));
|
||||
}
|
||||
// [Fact]
|
||||
// public void ExistingOrDefault_Should_BeFromLibrary()
|
||||
// {
|
||||
// var allSeries = new List<Series>()
|
||||
// {
|
||||
// new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
// new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
// new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
// };
|
||||
// Assert.Equal(_libraryMock.Series.ElementAt(0).Id, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker Than Black").Id);
|
||||
// Assert.Equal(_libraryMock.Series.ElementAt(0).Id, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker than Black").Id);
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public void ExistingOrDefault_Should_BeFromAllSeries()
|
||||
// {
|
||||
// var allSeries = new List<Series>()
|
||||
// {
|
||||
// new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
// new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
// new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
// };
|
||||
// Assert.Equal(3, ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Darker Than Black - Some Extension").Id);
|
||||
// }
|
||||
//
|
||||
// [Fact]
|
||||
// public void ExistingOrDefault_Should_BeNull()
|
||||
// {
|
||||
// var allSeries = new List<Series>()
|
||||
// {
|
||||
// new Series() {Id = 2, Name = "Darker Than Black"},
|
||||
// new Series() {Id = 3, Name = "Darker Than Black - Some Extension"},
|
||||
// new Series() {Id = 4, Name = "Akame Ga Kill"},
|
||||
// };
|
||||
// Assert.Null(ScannerService.ExistingOrDefault(_libraryMock, allSeries, "Non existing series"));
|
||||
// }
|
||||
|
||||
[Fact]
|
||||
public void Should_CreateSeries_Test()
|
||||
|
@ -79,6 +79,10 @@ namespace API.Parser
|
||||
new Regex(
|
||||
@"(?<Series>.*)(?:, Chapter )(?<Chapter>\d+)",
|
||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||
// Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire)
|
||||
new Regex(
|
||||
@"(?<Series>.*) (?<Chapter>\d+(?:.\d+|-\d+)?) \(\d{4}\)",
|
||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||
// Akame ga KILL! ZERO (2016-2019) (Digital) (LuCaZ)
|
||||
new Regex(
|
||||
@"(?<Series>.*)\(\d",
|
||||
|
@ -335,7 +335,7 @@ namespace API.Services
|
||||
|
||||
if (info == null)
|
||||
{
|
||||
_logger.LogWarning("Could not parse from {Path}", path);
|
||||
_logger.LogWarning("Could not parse series from {Path}", path);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -373,18 +373,5 @@ namespace API.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Volume ExistingOrDefault(IList<Volume> existingVolumes, ICollection<Volume> volumes, string volumeName)
|
||||
{
|
||||
return volumes.SingleOrDefault(v => v.Name == volumeName) ?? existingVolumes.SingleOrDefault(v => v.Name == volumeName);
|
||||
}
|
||||
|
||||
public static Series ExistingOrDefault(Library library, IEnumerable<Series> allSeries, string seriesName)
|
||||
{
|
||||
var name = Parser.Parser.Normalize(seriesName);
|
||||
library.Series ??= new List<Series>();
|
||||
return library.Series.SingleOrDefault(s => Parser.Parser.Normalize(s.Name) == name) ??
|
||||
allSeries.SingleOrDefault(s => Parser.Parser.Normalize(s.Name) == name);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user