Added support for Anilist lookups and date confirmations for ending series

This commit is contained in:
2026-09-13 15:05:18 -04:00
parent e336b2ae08
commit 2198f6ad84
3 changed files with 23 additions and 9 deletions
+2 -2
View File
@@ -19,7 +19,7 @@ public class Anilist
Task.WaitAll(Authenticate()); Task.WaitAll(Authenticate());
} }
public async Task<Media> RetrieveAiringShowInformation(String showName) public async Task<Media?> RetrieveAiringShowInformation(String showName)
{ {
var results = await client.SearchMediaAsync(new SearchMediaFilter var results = await client.SearchMediaAsync(new SearchMediaFilter
{ {
@@ -34,7 +34,7 @@ public class Anilist
} }
}); });
int currentYear = DateTime.Now.Year; int currentYear = DateTime.Now.Year;
var result = results.Data.Where(p => p.SeasonYear >= currentYear).OrderByDescending(p => p.StartDate).First(); var result = results.Data.Where(p => p.SeasonYear >= currentYear).OrderByDescending(p => p.StartDate.ToDateTime()).ThenByDescending(p => p.Id).FirstOrDefault();
return result; return result;
} }
+1
View File
@@ -8,6 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AnitomySharp.NET6" Version="0.5.1" /> <PackageReference Include="AnitomySharp.NET6" Version="0.5.1" />
<PackageReference Include="Kavita.AniListNet" Version="0.1.3" />
<PackageReference Include="Mastonet" Version="3.1.2" /> <PackageReference Include="Mastonet" Version="3.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.1" /> <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.1" />
+20 -7
View File
@@ -220,15 +220,28 @@ namespace AnimeAnnouncer
string? anilistPosterPath = null; string? anilistPosterPath = null;
if (latestEpisodeNumber > 3 && anilistClient != null) if (latestEpisodeNumber > 3 && anilistClient != null)
{ {
Console.WriteLine("Looking up Anilist title " + title); try
var anilistMedia = await anilistClient.RetrieveAiringShowInformation(title);
if (anilistMedia.Episodes.HasValue && anilistMedia.Episodes != lastEpisodeNumber)
{ {
Console.WriteLine($"Overriding episode count of {lastEpisodeNumber} using Anilist's showID {anilistMedia.Id} titled {anilistMedia.Title.EnglishTitle} with {anilistMedia.Episodes} episodes."); Console.WriteLine("Looking up Anilist title " + title);
lastEpisodeNumber = anilistMedia.Episodes.Value; var anilistMedia = await anilistClient.RetrieveAiringShowInformation(title);
} if (anilistMedia != null)
{
if (anilistMedia.Episodes.HasValue && anilistMedia.Episodes != lastEpisodeNumber)
{
Console.WriteLine(
$"Overriding episode count of {lastEpisodeNumber} using Anilist's showID {anilistMedia.Id} titled {anilistMedia.Title.EnglishTitle} with {anilistMedia.Episodes} episodes.");
lastEpisodeNumber = anilistMedia.Episodes.Value;
}
anilistPosterPath = anilistMedia.BannerImageUrl?.ToString(); anilistPosterPath = anilistMedia.BannerImageUrl?.ToString();
}
else
Console.WriteLine("0 anilist results found");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred during Anilist lookup: {ex}");
}
} }
if(showResult.Seasons.Count > 1) if(showResult.Seasons.Count > 1)