예제 #1
0
        /*
         * public static void DownloadAllEpisodes()
         * {
         *  CrossRef_AniDB_TvDBV2Repository repCrossRef = new CrossRef_AniDB_TvDBV2Repository();
         *  List<CrossRef_AniDB_TvDBV2> allCrossRefs = repCrossRef.GetAll();
         *
         *  List<int> tvDBIDs = new List<int>();
         *  foreach (CrossRef_AniDB_TvDBV2 xref in allCrossRefs)
         *  {
         *      if (!tvDBIDs.Contains(xref.TvDBID)) tvDBIDs.Add(xref.TvDBID);
         *  }
         *
         *  DownloadAllEpisodes(tvDBIDs);
         * }
         *
         * public static void DownloadAllEpisodes(List<int> tvDBIDs)
         * {
         *  foreach (int tvid in tvDBIDs)
         *  {
         *      CommandRequest_TvDBUpdateSeriesAndEpisodes cmd = new CommandRequest_TvDBUpdateSeriesAndEpisodes(tvid, false);
         *      cmd.Save();
         *  }
         * }
         */

        public static void ScanForMatches()
        {
            IReadOnlyList <SVR_AnimeSeries> allSeries = RepoFactory.AnimeSeries.GetAll();

            IReadOnlyList <CrossRef_AniDB_TvDBV2> allCrossRefs = RepoFactory.CrossRef_AniDB_TvDBV2.GetAll();
            List <int> alreadyLinked = new List <int>();

            foreach (CrossRef_AniDB_TvDBV2 xref in allCrossRefs)
            {
                alreadyLinked.Add(xref.AnimeID);
            }

            foreach (SVR_AnimeSeries ser in allSeries)
            {
                if (alreadyLinked.Contains(ser.AniDB_ID))
                {
                    continue;
                }

                SVR_AniDB_Anime anime = ser.GetAnime();

                if (anime != null)
                {
                    if (!anime.GetSearchOnTvDB())
                    {
                        continue;                           // Don't log if it isn't supposed to be there
                    }
                    logger.Trace("Found anime without tvDB association: " + anime.MainTitle);
                    if (anime.GetIsTvDBLinkDisabled())
                    {
                        logger.Trace("Skipping scan tvDB link because it is disabled: " + anime.MainTitle);
                        continue;
                    }
                }

                CommandRequest_TvDBSearchAnime cmd = new CommandRequest_TvDBSearchAnime(ser.AniDB_ID, false);
                cmd.Save();
            }
        }