ShokoAnime / ShokoServer

Repository for Shoko Server.
https://shokoanime.com/
MIT License
404 stars 74 forks source link

Titles intermittently changing language back and forth #835

Open ablakers opened 4 years ago

ablakers commented 4 years ago

VERSION INFORMATION

Server Version: 4.0.0

Desktop Version: 4.0.0

If you've compiled your own version, please use the last commit you compiled.

LOG FILE

2020-08-25.log

DESCRIPTION

My language preferences are English then Romaji (although the order of these two have reverted back on a couple of occasions... the issue has appeared even when they show in this order in Desktop though), but different titles are appearing to randomly switching their titles back and forth between the two. They're not always switching at the same time - e.g. My Hero Academia may show as either that or Boku no Hero Academia regardless of whether Jungle Emperor Leo (1997) is showing as that or Jungle Taitei (1997)

I have seen this mostly in Desktop but it happens to a lesser extent in Nakamori (which I've set to use the server language) so root cause seems to be in Server; sometimes it's visible in Desktop but not Nakamori, sometimes in both.

STEPS TO REPRODUCE

This seemed to happen around the time I started manually overriding TvDB links for LoGH episodes, but titles have been changing for titles where I haven't overridden any links as well

da3dsoul commented 4 years ago

Okay, I've looked into this a bit. If nothing else, this can be notes for when I inevitably forget that I looked at it. AniDB_Anime.MainTitle is only used for logging and searching for xrefs on TvDB, MovieDB, etc and as a fallback in PreferredTitle. Only AniDB_Anime.PreferredTitle uses AniDB_Anime.GetFormattedTitle(). GetFormattedTitle() uses the language preference to get the proper result from the AniDB titles. AnimeSeries.GetSeriesName() is the proper way to get the name, using language preference, TvDB, info, etc. It is used everywhere that is important. If there is an issue, it's either in clients' handling of the titles or in GetFormattedTitle().

This will need more digging, but that's my 10 minutes for now.