fix: use a combination of ParentIndexNumber and IndexNumber to determine next up episodes
Original-merge: 45f3fb1cfc
Merged-by: Joshua M. Boniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
fix: set MinIndexNumber for the next up query
Original-merge: 679e83082f
Merged-by: Claus Vium <cvium@users.noreply.github.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)
```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```
```
ArgumentNullException.ThrowIfNull($1);
```
Fix GetItems IndexOutOfRangeException when IDs do not exist
Original-merge: 527ed0607d
Merged-by: Claus Vium <cvium@users.noreply.github.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Fix series query including missing episodes when it should not
Original-merge: 9357d610b1
Merged-by: Claus Vium <cvium@users.noreply.github.com>
Backported-by: Joshua Boniface <joshua@boniface.me>
This is an universal solution for plugins to override how series are merged.
The reason to override is so we can set the same provider id on multiple items without merging them, while using another id for merging them. Having an (optional) provider id not tied to any online database allows plugins to use their own rules for merging series.
* Use Guid.Equals(Guid) instead of the == override
* Ban the usage of Guid.Equals(Object) to prevent accidental boxing
* Compare to default(Guid) instead of Guid.Empty
The code is the same as `MediaBrowser.Controller/Entities/TV/Series.cs`, using the imdbID to generate Trakt links.
The trakt url for episodes is `https://trakt.tv/episodes/{0}`.