-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Relax requirement for livetv series #12125
Relax requirement for livetv series #12125
Conversation
| @@ -167,7 +167,7 @@ private static ProgramInfo GetProgramInfo(XmlTvProgram program, ListingsProvider | |||
| Overview = program.Description, | |||
| ProductionYear = program.CopyrightDate?.Year, | |||
| SeasonNumber = program.Episode.Series, | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If program.Episode is null this will throw a nullref exception, no? (same for line 155 and 162)
So IsSeries will always be true? (or this function would throw)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe @crobibero can speak to this? I see that he had removed some of these null checks from the same commit. I'm not a programmer in any sense of the manner, I just know enough to get myself in trouble.
As long as it's an episode it should be considered a series. This was the behavior before 10.9.Z.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
I would like to test this but struggling a bit with process. I am currently getting a build error in jellyfin-packaging when I attempt to build this. How do I compile in the jellyfin repo? Is that documented? I got instruction from joshua boniface and I simply needed to ./checkout.py master in the jellyfin-packaging. Had to install sudo apt install python3-git. Then it builds on ubuntu noble for me. |
https://github.com/jellyfin/jellyfin?tab=readme-ov-file#server-development |
|
Basically you need to do a |
|
FYI - I'm having this same issue this PR is set to fix, so very interested in getting it merged. Right now, no live TV shows get recognized as a series, so can't "record all episodes" for any show. This is a bug and would love to see it fixed as it used to work great. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry but I don't believe this is the correct way to to this.
| @@ -167,7 +167,7 @@ private static ProgramInfo GetProgramInfo(XmlTvProgram program, ListingsProvider | |||
| Overview = program.Description, | |||
| ProductionYear = program.CopyrightDate?.Year, | |||
| SeasonNumber = program.Episode.Series, | |||
| IsSeries = program.Episode.Series is not null, | |||
| IsSeries = program.Episode is not null, | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not the correct way to fix this and will not work as what you intend it to. The type definition of program.Episode is not nullable and thus this expression is always true. You are just setting IsSeries == true for everything.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I was looking at this PR and thought this would be a suitable workaround. It was my misunderstanding, but it does what I want it to do, just not for the right reason. Thanks.
In Jellyfin XmlTvListingProvider.cs checks
Episodefor null to determine if the program is part of a series or not:SeasonNumber = program.Episode?.Series, IsSeries = program.Episode != null,The old code initialized
XmlTvProgram.Episodeto a newXmlTvEpisodein the constructor, so it could never be null. This results in Jellyfin treating all programs (movies and shows) as shows ("Record series" button is active, program is recorded to the shows recording directory if set, etc).Making
Episodenullable and leaving it null until an episode tag is encountered fixes the behavior in Jellyfin, and besides tests in this repo there was nowhere that uses Episode that doesn't already test it for null.
Thanks for taking a look at this! I suspected that this setup would allow everything to be recorded as a series. I’ve been running the modified code to record a news series without any issues, and another user has also reported successful results. I reviewed some sample data today with fresh eyes and think I’ve pinpointed the issue, though I’m not entirely sure why it’s happening. Here’s the data in question: The “2024 Paris Olympics” records as a series, but “Good Morning America” does not. The only difference is the presence of the I’ll close this PR and post my findings in the issue thread. Hopefully, this information will help someone implement a proper fix. |
|
Yes, I tested it and it does indeed work fine. Can we agree that if the show has an episode number ( I scanned my current xmltv.xml and all shows have at least one episode-num and some have up to three so this patch is functionally equivalent to always showing the record series button. In other words just set it to true. All shows are parts of series in my current data set. If you want to be weird then just check if there is at least one episode-num. Here is an example where one show has three episode-nums
|
Changes
IsSeriesback toprogram.Episode is not nullIssues
Fixes #11976