Use series Order string instead of parsed float in template tags (#1056)

This commit is contained in:
Michael Bucari-Tovo 2025-07-29 12:18:37 -06:00
parent 7741e3caff
commit 663f70b8bf
7 changed files with 17 additions and 15 deletions

View File

@ -126,8 +126,8 @@ namespace AaxDecrypter
if (DownloadOptions.SeriesName is string series) if (DownloadOptions.SeriesName is string series)
AaxFile.AppleTags.AppleListBox.EditOrAddFreeformTag(tagDomain, "SERIES", series); AaxFile.AppleTags.AppleListBox.EditOrAddFreeformTag(tagDomain, "SERIES", series);
if (DownloadOptions.SeriesNumber is float part) if (DownloadOptions.SeriesNumber is string part)
AaxFile.AppleTags.AppleListBox.EditOrAddFreeformTag(tagDomain, "PART", part.ToString()); AaxFile.AppleTags.AppleListBox.EditOrAddFreeformTag(tagDomain, "PART", part);
} }
OnRetrievedTitle(AaxFile.AppleTags.TitleSansUnabridged); OnRetrievedTitle(AaxFile.AppleTags.TitleSansUnabridged);

View File

@ -43,7 +43,7 @@ namespace AaxDecrypter
string? Publisher { get; } string? Publisher { get; }
string? Language { get; } string? Language { get; }
string? SeriesName { get; } string? SeriesName { get; }
float? SeriesNumber { get; } string? SeriesNumber { get; }
NAudio.Lame.LameConfig? LameConfig { get; } NAudio.Lame.LameConfig? LameConfig { get; }
bool Downsample { get; } bool Downsample { get; }
bool MatchSourceBitrate { get; } bool MatchSourceBitrate { get; }

View File

@ -26,7 +26,7 @@ namespace FileLiberator
public string Language => LibraryBook.Book.Language; public string Language => LibraryBook.Book.Language;
public string? AudibleProductId => LibraryBookDto.AudibleProductId; public string? AudibleProductId => LibraryBookDto.AudibleProductId;
public string? SeriesName => LibraryBookDto.FirstSeries?.Name; public string? SeriesName => LibraryBookDto.FirstSeries?.Name;
public float? SeriesNumber => LibraryBookDto.FirstSeries?.Number; public string? SeriesNumber => LibraryBookDto.FirstSeries?.Number;
public NAudio.Lame.LameConfig? LameConfig { get; } public NAudio.Lame.LameConfig? LameConfig { get; }
public string UserAgent => AudibleApi.Resources.Download_User_Agent; public string UserAgent => AudibleApi.Resources.Download_User_Agent;
public bool StripUnabridged => Config.AllowLibationFixup && Config.StripUnabridged; public bool StripUnabridged => Config.AllowLibationFixup && Config.StripUnabridged;

View File

@ -83,7 +83,7 @@ namespace FileLiberator
.Select(sb .Select(sb
=> new SeriesDto( => new SeriesDto(
sb.Series.Name, sb.Series.Name,
sb.Book.IsEpisodeParent() ? null : sb.Index, sb.Book.IsEpisodeParent() ? null : sb.Order,
sb.Series.AudibleSeriesId) sb.Series.AudibleSeriesId)
).ToList(); ).ToList();
} }

View File

@ -7,9 +7,9 @@ public record SeriesDto : IFormattable
{ {
public string Name { get; } public string Name { get; }
public float? Number { get; } public string? Number { get; }
public string AudibleSeriesId { get; } public string AudibleSeriesId { get; }
public SeriesDto(string name, float? number, string audibleSeriesId) public SeriesDto(string name, string? number, string audibleSeriesId)
{ {
Name = name; Name = name;
Number = number; Number = number;

View File

@ -68,7 +68,7 @@ namespace LibationFileManager.Templates
YearPublished = 2017, YearPublished = 2017,
Authors = [new("Arthur Conan Doyle", "B000AQ43GQ"), new("Stephen Fry - introductions", "B000APAGVS")], Authors = [new("Arthur Conan Doyle", "B000AQ43GQ"), new("Stephen Fry - introductions", "B000APAGVS")],
Narrators = [new("Stephen Fry", null)], Narrators = [new("Stephen Fry", null)],
Series = [new("Sherlock Holmes", 1, "B08376S3R2"), new("Some Other Series", 1, "B000000000")], Series = [new("Sherlock Holmes", "1-6", "B08376S3R2"), new("Book Collection", "1", "B000000000")],
Codec = "AAC-LC", Codec = "AAC-LC",
LibationVersion = Configuration.LibationVersion?.ToVersionString(), LibationVersion = Configuration.LibationVersion?.ToVersionString(),
FileVersion = "36217811", FileVersion = "36217811",

View File

@ -24,7 +24,7 @@ namespace TemplatesTests
public static class Shared public static class Shared
{ {
public static LibraryBookDto GetLibraryBook() public static LibraryBookDto GetLibraryBook()
=> GetLibraryBook([new SeriesDto("Sherlock Holmes", 1, "B08376S3R2")]); => GetLibraryBook([new SeriesDto("Sherlock Holmes", "1", "B08376S3R2")]);
public static LibraryBookDto GetLibraryBook(IEnumerable<SeriesDto> series) public static LibraryBookDto GetLibraryBook(IEnumerable<SeriesDto> series)
=> new() => new()
@ -367,12 +367,13 @@ namespace TemplatesTests
[TestMethod] [TestMethod]
[DataRow("<series>", "Series A, Series B, Series C")] [DataRow("<series>", "Series A, Series B, Series C, Series D")]
[DataRow("<series[]>", "Series A, Series B, Series C")] [DataRow("<series[]>", "Series A, Series B, Series C, Series D")]
[DataRow("<series[max(1)]>", "Series A")] [DataRow("<series[max(1)]>", "Series A")]
[DataRow("<series[max(2)]>", "Series A, Series B")] [DataRow("<series[max(2)]>", "Series A, Series B")]
[DataRow("<series[max(3)]>", "Series A, Series B, Series C")] [DataRow("<series[max(3)]>", "Series A, Series B, Series C")]
[DataRow("<series[format({N}, {#}, {ID}) separator(; )]>", "Series A, 1, B1; Series B, 6, B2; Series C, 2, B3")] [DataRow("<series[max(4)]>", "Series A, Series B, Series C, Series D")]
[DataRow("<series[format({N}, {#}, {ID}) separator(; )]>", "Series A, 1, B1; Series B, 6, B2; Series C, 2, B3; Series D, 1-5, B4")]
[DataRow("<series[format({N}, {#}, {ID}) separator(; ) max(3)]>", "Series A, 1, B1; Series B, 6, B2; Series C, 2, B3")] [DataRow("<series[format({N}, {#}, {ID}) separator(; ) max(3)]>", "Series A, 1, B1; Series B, 6, B2; Series C, 2, B3")]
[DataRow("<series[format({N}, {#}, {ID}) separator(; ) max(2)]>", "Series A, 1, B1; Series B, 6, B2")] [DataRow("<series[format({N}, {#}, {ID}) separator(; ) max(2)]>", "Series A, 1, B1; Series B, 6, B2")]
[DataRow("<first series>", "Series A")] [DataRow("<first series>", "Series A")]
@ -383,9 +384,10 @@ namespace TemplatesTests
var bookDto = GetLibraryBook(); var bookDto = GetLibraryBook();
bookDto.Series = bookDto.Series =
[ [
new("Series A", 1, "B1"), new("Series A", "1", "B1"),
new("Series B", 6, "B2"), new("Series B", "6", "B2"),
new("Series C", 2, "B3") new("Series C", "2", "B3"),
new("Series D", "1-5", "B4"),
]; ];
Templates.TryGetTemplate<Templates.FileTemplate>(template, out var fileTemplate).Should().BeTrue(); Templates.TryGetTemplate<Templates.FileTemplate>(template, out var fileTemplate).Should().BeTrue();