123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System.Threading.Tasks;
- using MediaBrowser.Controller.Providers;
- using MediaBrowser.Model.Entities;
- namespace MediaBrowser.Providers.TV
- {
- public class TvdbSeasonIdentityProvider : IItemIdentityProvider<SeasonInfo>
- {
- public static readonly string FullIdKey = MetadataProviders.Tvdb + "-Full";
- public Task Identify(SeasonInfo info)
- {
- string tvdbSeriesId;
- if (!info.SeriesProviderIds.TryGetValue(MetadataProviders.Tvdb.ToString(), out tvdbSeriesId) || string.IsNullOrEmpty(tvdbSeriesId) || info.IndexNumber == null)
- {
- return Task.FromResult<object>(null);
- }
- if (string.IsNullOrEmpty(info.GetProviderId(FullIdKey)))
- {
- var id = string.Format("{0}:{1}", tvdbSeriesId, info.IndexNumber.Value);
- info.SetProviderId(FullIdKey, id);
- }
-
- return Task.FromResult<object>(null);
- }
- public static TvdbSeasonIdentity? ParseIdentity(string id)
- {
- try
- {
- var parts = id.Split(':');
- return new TvdbSeasonIdentity(parts[0], int.Parse(parts[1]));
- }
- catch
- {
- return null;
- }
- }
- }
- public struct TvdbSeasonIdentity
- {
- public string SeriesId { get; private set; }
- public int Index { get; private set; }
- public TvdbSeasonIdentity(string id)
- : this()
- {
- this = TvdbSeasonIdentityProvider.ParseIdentity(id).Value;
- }
- public TvdbSeasonIdentity(string seriesId, int index)
- : this()
- {
- SeriesId = seriesId;
- Index = index;
- }
- }
- }
|