- Added `IVideoCrossReference` — an interface representing our
cross-reference between video, episode, and anime — and added
`IReadOnlyList<IVideoCrossReference> CrossReferences` to
`IVideo`, `IEpisode` and `ISeries`, and
`IReadOnlyList<IVideo> VideoList` to `ISeries` and `IEpisode`. This
closes the gaps for how to navigate between `IVideo`, `IEpisode` and
`ISeries` from any of the three interfaces to any of the other
interfaces in a single jump.
- Added `IRelatedMetadata`, a more generic version of the
`IRelatedAnime`, which can be used to represent a relation between
anything implementing `IMetadata` in the future, and will currently
be used for the `ISeries` to represent related series. Furthermore,
`IReadOnlyList<IRelatedAnime> Relations` on `IAnime` have been marked
as deprecated, but not removed, to preserve backwards compatibility.
- Added `IReadOnlyDictionary<EpisodeType, int> EpisodeCountDict` to
`ISeries`, and deprecated the older `EpisodeCounts EpisodeCounts` on
`IAnime`. Same as `Relations`, it has only been marked as deprecated,
and has not been removed yet, to preserve backwards compatibility.
- Added `IReadOnlyList<IImportFolder> AvailableFolders` to
`RenameEventArgs`, because some plugins _might_ want to look at them
during the renaming, even if they won't be returned with the result
of the operation. The next time we (intentionally) break the plugins
then we will make sure to merge `RenameEventArgs` and `MoveEventArgs`,
since they're now identical and serve the same purpose.
I've tested these changes _lightly_ with a fresh copy of the LuaRenamer
on a small test library locally on my dev instance, so there _shouldn't_
by any breaking changes to it or other plugins. So rest at ease. :eyes: