Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failsafe when season posters aren't available is not working #288

Open
KurtzPT opened this issue Mar 7, 2019 · 17 comments
Open

Failsafe when season posters aren't available is not working #288

KurtzPT opened this issue Mar 7, 2019 · 17 comments
Assignees

Comments

@KurtzPT
Copy link
Contributor

KurtzPT commented Mar 7, 2019

This was talked before in #239.

While adding https://www.thetvdb.com/series/detroit-metal-city I noticed season 0 (Specials) on plex didn't download any poster from TVDB (TVDB special season doesn't have posters on it) and thus is using whatever main serie poster I have.

Wasn't it supposed to download all the main serie posters in case there's no season posters?

@EndOfLine369
Copy link
Collaborator

please provide the agent log

@KurtzPT
Copy link
Contributor Author

KurtzPT commented Mar 8, 2019

Forgot the log, sorry.
Detroit Metal City [anidb-5587].agent-update.log

@ZeroQI
Copy link
Owner

ZeroQI commented Mar 8, 2019

Notes

  • TheTVDB season 0/specials has no posters [https://www.thetvdb.com/series/detroit-metal-city]
  • Hama logs show no specials/season 01 posters in Hama
  • We do miss a fallback to load a poster into season 0 when none exist, but some seasons have different characters or settings

So i see few possibilities:

  • expect users to upload a specials/season 0 poster to solve the issue ? I really like that one as it benefits everybody across all platforms...
  • use season 1 posters but not the selected poster for season 1 (shift the image ids for priority), that seem like a bad idea
  • On ANY season missing posters, use main series posters but not use main poster and shift selected poster for each season by varying the ID. This would work well for series with little season posters but series poster. Opinions ?

@KurtzPT
Copy link
Contributor Author

KurtzPT commented Mar 8, 2019

The main idea of having all main serie posters in those single seasons that don't have any posters, is that I can then choose one of my liking, instead of having the same exact one that is chosen to be the main serie poster.

Like it is, I have to go search for the tvdb link open their page, go to the main posters and copy the link of one of them of my liking. It's too much work when hama could just put them on all on plex to be chosen from.

@ZeroQI
Copy link
Owner

ZeroQI commented Mar 8, 2019

Or select in library settings to hide single seasons folders...
Yes we need to add series posters in case of no season posters.

@EndOfLine369
Copy link
Collaborator

EndOfLine369 commented Mar 9, 2019

I would not want other posters added for two reasons. I want it to stay empty.

  1. I actually want them to just default to the series' poster otherwise it is not obvious the poster does just not exist instead of loading what looks like a bad poster that does not match the season or series poster.
  2. If we put in posters and we eventually get a proper poster for that season, Plex will not change it to it once it is loaded so we would never know right?

If we really want this done, I would think this requires to be a bool pref entry with default being like it is now w/no posters.

@ZeroQI
Copy link
Owner

ZeroQI commented Mar 9, 2019

@EndOfLine369

    1. To avoid wrong posters we need to know if posters are missing, so people can submit to TheTVDB new season posters
    1. I totally agree. Better no content than wrong content never updating.
  • Thanks for clarifying my thoughts

@KurtzPT

  • Yes would be easier for this series but would break support for others series by putting non adequate posters the selected one not removable if posters were, and the same is true if we had a bolean setting, would only benefit those in one situation but not the other.
  • you care enough about specials to download them and wanting a season poster, but they are a re-cut end of ep1 and beginning of ep2 and a live action
  • in similar situation, please find adequate specials poster and resize with paint to 680x1000 (despite TheTVDB for season posters indicating a lower resolution in guidelines as it will be rejected at upload time otherwise)

The issue is, what would make a special poster more suited to be a season poster than a series poster for thetvdb? The live action is easy and found a poster that had anime on the left live on the right, so i have added a live action poster to TheTVDB solving this issue specifically. Closing this feature request query

@ZeroQI ZeroQI closed this as completed Mar 9, 2019
@KurtzPT
Copy link
Contributor Author

KurtzPT commented Mar 10, 2019

I would not want other posters added for two reasons. I want it to stay empty.

  1. I actually want them to just default to the series' poster otherwise it is not obvious the poster does just not exist instead of loading what looks like a bad poster that does not match the season or series
    poster.
  • You can also make the same argument that the default series poster might also not be the right one for that season that has no posters.
  1. If we put in posters and we eventually get a proper poster for that season, Plex will not change it to it once it is loaded so we would never know right?
  • Why would it not change it? IIRC, the default TV agent for Plex does change the covers of TV seasons once they have a more updated/higher weight poster available, you just need to force a metadata refresh.

If we really want this done, I would think this requires to be a bool pref entry with default being like it is now w/no posters.

I like that idea, having a checkbox to allow the user to choose their preference.

I don't understand the first point you made @ZeroQI, This is the default case at the moment that hama does. But with this checkbox idea, the season would still use the same exact main poster, but would also have more options for the user to change it. I don't see why you think it would break support for other series.

@KurtzPT

  • Yes would be easier for this series but would break support for others series by putting non adequate posters the selected one not removable if posters were, and the same is true if we had a bolean setting, would only benefit those in one situation but not the other.
  • If a season does not have posters it will automatically use the one Plex have on the main series (which would the one hama puts it there, unless the user changes it). Now with this boolean idea, it would still use the exact same poster but it would allow the user to change it to another poster associated with the main series. I don't see where it would break anything.
  • you care enough about specials to download them and wanting a season poster, but they are a re-cut end of ep1 and beginning of ep2 and a live action
  • Again, I just gave an example where it's just a special, but there are plenty of seasons on TVDB without posters that default wrongly to whatever I have on the main series, and gives me no alternative than go find an URL to fix it manually.
  • in similar situation, please find adequate specials poster and resize with paint to 680x1000 (despite TheTVDB for season posters indicating a lower resolution in guidelines as it will be rejected at upload time otherwise)

The issue is, what would make a special poster more suited to be a season poster than a series poster for thetvdb? The live action is easy and found a poster that had anime on the left live on the right, so i have added a live action poster to TheTVDB solving this issue specifically. Closing this feature request query

@KurtzPT
Copy link
Contributor Author

KurtzPT commented Mar 10, 2019

I'm going to make a simple example using numbers, so I can clarify that it wouldn't break anything adding it (also having it as an checkbox would let the users choose what they want)

I add an anime called "XPTO" that has some episodes specials.

AniDB - TheTVDB
Main Anime - Season 1
Specials - Season 0

TheTVDB has the following posters, ordered all by weight (from the biggest weight until the smallest one):

Main Serie Page - PosterMain001,PosterMain002,PosterMain003
Season 1 - PosterS01001,PosterS01002,PosterS01003
Specials - No posters.

So the default Hama logic would create on plex the following entry:

XPTO (Using PosterMain001 as default poster, with PosterMain002 and PosterMain003 as choices to change)

  • Specials (Because there are no posters here, it would use the default one from the main series, which is PosterMain001)
  • Season 1 (Using PosterS01001 as default poster, with PosterS01002 and PosterS01003 as choices to change)

Now with the failback logic in it, it would change the above to this:

XPTO (No changes)

  • Specials (Using PosterMain001 as default poster, with PosterMain002 and PosterMain003 as choices to change)
  • Season 1 (No changes)

@ZeroQI where would this break anything?

@ZeroQI
Copy link
Owner

ZeroQI commented Mar 10, 2019

Some series have different character or settings per season and if we use the same rules for all seasons like it is now (including season 0), it would use wrong posters, however Plex will show the series poster as season without adding it in the season poster list

Now we could have a fallback just for specials season only with the series posters added and same selected poster as the series poster, so that would warn there was no season poster found

When a specials season poster is added then we can remove all posters but the active one (series if unchanged) would stay as it is active, which is an issue.

@EndOfLine369 i understand the legitimate concern for series poster not matching the season, but seem mitigated for specials season. What's your position on importing series poster for special seasons leaving thye same selected poster as the series?

1 similar comment
@ZeroQI
Copy link
Owner

ZeroQI commented Mar 10, 2019

Some series have different character or settings per season and if we use the same rules for all seasons like it is now (including season 0), it would use wrong posters, however Plex will show the series poster as season without adding it in the season poster list

Now we could have a fallback just for specials season only with the series posters added and same selected poster as the series poster, so that would warn there was no season poster found

When a specials season poster is added then we can remove all posters but the active one (series if unchanged) would stay as it is active, which is an issue.

@EndOfLine369 i understand the legitimate concern for series poster not matching the season, but seem mitigated for specials season. What's your position on importing series poster for special seasons leaving thye same selected poster as the series?

@ZeroQI ZeroQI reopened this Mar 10, 2019
@KurtzPT
Copy link
Contributor Author

KurtzPT commented Mar 11, 2019

Some series have different character or settings per season and if we use the same rules for all seasons like it is now (including season 0), it would use wrong posters, however Plex will show the series poster as season without adding it in the season poster list
Now we could have a fallback just for specials season only with the series posters added and same selected poster as the series poster, so that would warn there was no season poster found

When a specials season poster is added then we can remove all posters but the active one (series if unchanged) would stay as it is active, which is an issue.

@EndOfLine369 i understand the legitimate concern for series poster not matching the season, but seem mitigated for specials season. What's your position on importing series poster for special seasons leaving thye same selected poster as the series?

Maybe I'm not understanding because of some language barrier, but with the example I gave above (Instead of specials it would be lets say season 2 that would correspond to another anime related to the main series), the only thing that would change is Plex would give more options to choose from (while manually editing the season poster), and it would be using by default the same exact poster that Plex would choose for the main series.

Possible problems:

  • One problem with this new logic would occur if the user would edit manually and choose a different season poster from the default one that Plex chooses. If later in time that same season would get a new poster uploaded to TheTVDB, then after doing a force metadata refresh the new season poster would be added to the list of posters, but the previous season poster would still be displayed (because there's a lock system when an user edits a field in Plex)
  • If the user after scanning a new series on Plex, changes the default main serie poster that was previously selected by Plex,, then that same poster would not be replicated automatically to the season poster because the season posters would have by default the previous selected main serie poster that was changed. I don't see a problem with this per se, I think if the user wants to change the default main series poster, it should also do the exact same to the season poster.

Anyway, these possible problems would just be applicable to the users who would opt in on the library Hama settings like @EndOfLine369 suggested. This setting would be turned off by default so most users would still have the default logic, while allowing users like me to choose the failsafe logic.

@EndOfLine369
Copy link
Collaborator

Would also say to put the current logic into the pref option as well. What was it? It will currently dl the series posters to S1 if S1 has no posters?
So the option would be to use series posters on empty seasons S0 & S1 when anidb_numbering.

@ZeroQI
Copy link
Owner

ZeroQI commented Mar 18, 2019

Notes:

  • setting for series poster failover?
  • for anidb numbering, consider tvdb series poster for season 0 and 1 poster if no tvdb season present
  • id same or different?
  • inconvenient: people will chose different poster instead of updating season posters. season posters can have different characters, looks or geographical/time/season settings, season 0 less so...

tvdb line 276-279 this manages anidb numbering season posters.

                  if str(image['subKey']) in ('1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')):
                    SaveDict(('TheTVDB/'+image['fileName'], rank, thumbnail), TheTVDB_dict, 'posters', TVDB_IMG_ROOT + image['fileName'])
                  if str(image['subKey']) in ('0', '1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')):
                    SaveDict(('TheTVDB/'+image['fileName'], 1 if rank==3 else 3 if rank==1 else rank, thumbnail), TheTVDB_dict, 'seasons', '0' if str(image['subKey'])=='0' else '1', 'posters', TVDB_IMG_ROOT + image['fileName'])  #if anidb_numbering else str(image['subKey'])

Notes:

  • First line use season poster as series poster... Is there any case where that is useful? if series poster missing we might want users to add series poster and likeliness of it happening low
  • Second line saves season 0 or mapped season to season 0 or 1 poster swapping rank 1 and 3 possibly to not use same poster as the series one...
  • How are seasons 2+ supposed to get tvdb poster? Can we check there is no tvdb posters for seasons 2+?
  • here is sample code to replace the above to formalize current behaviour. Once agreed with behaviour we need to assess series poster fallback per season lf NO season poster found and setting set changed from the default. This will need to loop through season and if no season posters we add series ones but either keep the id so poster match or use different poster (swap rank 1 image with if season+2 so season 0 use id 2 and season 1 id 3... ) so we need drop down setting (no season folder fallback, series poster w/main poster, series poster w/different posters)
season_str = 0' if str(image['subKey'])=='0' else '1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')
if str(image['subKey']) == season_str):
  SaveDict(('TheTVDB/'+image['fileName'], rank, thumbnail), TheTVDB_dict, 'seasons', season_str, 'posters', TVDB_IMG_ROOT + image['fileName'])

Then we loop over seasons list and if no season poster we add series poster tweaking the priority...

@EndOfLine369 Thx, editing my post so removing yours but looks weird now...

Repository owner deleted a comment from EndOfLine369 Mar 19, 2019
@ZeroQI
Copy link
Owner

ZeroQI commented Sep 6, 2019

Looking at fixing this and the other image related bug after a long hiatus...
I can't think about it clearly so will write out my thoughts to simplify the process hopefully
Please point out any flaw in the below details:

tvdb line 294-297 this manages anidb numbering season posters from

                  if str(image['subKey']) in ('1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')):
                    SaveDict(('TheTVDB/'+image['fileName'], rank, thumbnail), TheTVDB_dict, 'posters', TVDB_IMG_ROOT + image['fileName'])
                  if str(image['subKey']) in ('0', '1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')):
                    SaveDict(('TheTVDB/'+image['fileName'], 1 if rank==3 else 3 if rank==1 else rank, thumbnail), TheTVDB_dict, 'seasons', '0' if str(image['subKey'])=='0' else '1', 'posters', TVDB_IMG_ROOT + image['fileName'])  #if anidb_numbering else str(image['subKey'])

to:

season_str = '0' if str(image['subKey'])=='0' else '1' if Dict(mappingList, 'defaulttvdbseason')=='a' else Dict(mappingList, 'defaulttvdbseason')
if str(image['subKey']) == season_str):
  SaveDict(('TheTVDB/'+image['fileName'], rank, thumbnail), TheTVDB_dict, 'seasons', season_str, 'posters', TVDB_IMG_ROOT + image['fileName'])

Then add the setting in the code:

Agent setting 'season_poster_failover' drop-down menu to add:

  • none (default)
  • series poster w/main poster selected
  • series poster w/different poster selected

For each season (0/1 if anidb numbering, all if tvdb numbering), if no season poster present and 'season_poster_failover' is not 'none':

  • add series poster with index (2 if index==(1 if 'series poster w/main poster selected' else 2) else poster_rank + 2),

Need:

  • TheTVDB series link with no season poster

@ZeroQI
Copy link
Owner

ZeroQI commented Oct 6, 2019

@EndOfLine369 any feedback on the above? Shouldn't have deleted your comment to edit my post above trying to keep the number of posts down, looks messy now...
Anything else to code i forgot?

@EndOfLine369
Copy link
Collaborator

Will try and take the time and reread this wordy thread and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants