Skip to content

Commit

Permalink
checking Japanese title as well as English title
Browse files Browse the repository at this point in the history
  • Loading branch information
vosmiic committed Mar 29, 2022
1 parent 471a55a commit df23e0b
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions ServerEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,7 @@ public async void PlaybackStopped(object sender, PlaybackStopEventArgs e) {
bool found = false;
if (animeList != null) {
foreach (var anime in animeList) {
if (CompareStrings(anime.Title, _animeType == typeof(Episode) ? episode.SeriesName : movie.Name) ||
CompareStrings(anime.AlternativeTitles.En, _animeType == typeof(Episode) ? episode.SeriesName : movie.Name)) {
if (TitleCheck(anime, episode, movie)) {
_logger.LogInformation($"({ApiName}) Found matching {(_animeType == typeof(Episode) ? "series" : "movie")}: {anime.Title}");
Anime matchingAnime = anime;
int episodeNumber = episode.IndexNumber.Value;
Expand Down Expand Up @@ -181,6 +180,19 @@ public async void PlaybackStopped(object sender, PlaybackStopEventArgs e) {
}
}

/// <summary>
/// Checks if the Jellyfin library entry matches the API names.
/// </summary>
/// <param name="anime">The API anime.</param>
/// <param name="episode">The episode if its a series.</param>
/// <param name="movie">The movie if its a single episode movie.</param>
/// <returns></returns>
private bool TitleCheck(Anime anime, Episode episode, Movie movie) {
return CompareStrings(anime.Title, _animeType == typeof(Episode) ? episode.SeriesName : movie.Name) ||
CompareStrings(anime.AlternativeTitles.En, _animeType == typeof(Episode) ? episode.SeriesName : movie.Name) ||
(anime.AlternativeTitles.Ja != null && CompareStrings(anime.AlternativeTitles.Ja, _animeType == typeof(Episode) ? episode.SeriesName : movie.Name));
}

/// <summary>
/// Compare two strings, ignoring symbols and case.
/// </summary>
Expand Down Expand Up @@ -423,7 +435,9 @@ private async Task<Anime> GetOva(int animeId, string episodeName) {
foreach (RelatedAnime relatedAnime in listOfRelatedAnime) {
var detailedRelatedAnime = await _apiCallHelpers.GetAnime(relatedAnime.Anime.Id);
if (detailedRelatedAnime is { Title: { }, AlternativeTitles: { En: { } } }) {
if (ContainsExtended(detailedRelatedAnime.Title, episodeName) || ContainsExtended(detailedRelatedAnime.AlternativeTitles.En, episodeName)) {
if (ContainsExtended(detailedRelatedAnime.Title, episodeName) ||
ContainsExtended(detailedRelatedAnime.AlternativeTitles.En, episodeName) ||
(detailedRelatedAnime.AlternativeTitles.Ja != null && ContainsExtended(detailedRelatedAnime.AlternativeTitles.Ja, episodeName))) {
// rough match
return detailedRelatedAnime;
}
Expand Down

0 comments on commit df23e0b

Please sign in to comment.