Esempio n. 1
0
        private List <EpisodeMapping> GetEpisodeMappings(AnimelistMapping mapping)
        {
            if (mapping.ParsedMappings == null)
            {
                var pairs = mapping.Value.Split(';');
                mapping.ParsedMappings = pairs
                                         .Where(x => !string.IsNullOrEmpty(x))
                                         .Select(x =>
                {
                    var parts = x.Split('-');
                    return(new EpisodeMapping
                    {
                        Anidb = int.Parse(parts[0]),
                        Tvdb = int.Parse(parts[1])
                    });
                }).ToList();
            }

            return(mapping.ParsedMappings);
        }
Esempio n. 2
0
        private int?FindAnidbEpisodeMapping(AnidbEpisode anidb, AnimelistMapping mapping)
        {
            var maps  = GetEpisodeMappings(mapping);
            var exact = maps.FirstOrDefault(x => x.Anidb == anidb.Index);

            if (exact != null)
            {
                return(exact.Tvdb);
            }

            if (mapping.OffsetSpecified)
            {
                var startInRange = !mapping.StartSpecified || mapping.Start <= anidb.Index;
                var endInRange   = !mapping.EndSpecified || mapping.End >= anidb.Index;

                if (startInRange && endInRange)
                {
                    return(anidb.Index + mapping.Offset);
                }
            }

            return(null);
        }
        private List<EpisodeMapping> GetEpisodeMappings(AnimelistMapping mapping)
        {
            if (mapping.ParsedMappings == null)
            {
                var pairs = mapping.Value.Split(';');
                mapping.ParsedMappings = pairs
                    .Where(x => !string.IsNullOrEmpty(x))
                    .Select(x =>
                    {
                        var parts = x.Split('-');
                        return new EpisodeMapping
                        {
                            Anidb = int.Parse(parts[0]),
                            Tvdb = int.Parse(parts[1])
                        };
                    }).ToList();
            }

            return mapping.ParsedMappings;
        }
        private int? FindAnidbEpisodeMapping(AnidbEpisode anidb, AnimelistMapping mapping)
        {
            var maps = GetEpisodeMappings(mapping);
            var exact = maps.FirstOrDefault(x => x.Anidb == anidb.Index);

            if (exact != null)
                return exact.Tvdb;

            if (mapping.OffsetSpecified)
            {
                var startInRange = !mapping.StartSpecified || mapping.Start <= anidb.Index;
                var endInRange = !mapping.EndSpecified || mapping.End >= anidb.Index;

                if (startInRange && endInRange)
                    return anidb.Index + mapping.Offset;
            }

            return null;
        }
        private int? FindTvdbEpisodeMapping(TvdbEpisode tvdb, AnimelistMapping mapping)
        {
            var maps = GetEpisodeMappings(mapping);
            var exact = maps.FirstOrDefault(x => x.Tvdb == tvdb.Index);

            if (exact != null)
                return exact.Anidb;

            if (mapping.OffsetSpecified)
            {
                var startInRange = !mapping.StartSpecified || (mapping.Start + mapping.Offset) <= tvdb.Index;
                var endInRange = !mapping.EndSpecified || (mapping.End + mapping.Offset) >= tvdb.Index;

                if (startInRange && endInRange)
                    return tvdb.Index - mapping.Offset;
            }

            return null;
        }