예제 #1
0
        private static void UpdateRefreshUi(int jobId = 0)
        {
            Random ran   = new Random();
            int    count = 1;

            Parallel.ForEach(models, new ParallelOptions {
                MaxDegreeOfParallelism = 10
            }, rm =>
            {
                RemoteScanMag entity = new RemoteScanMag();
                entity.JobId         = jobId;

                Console.Write("处理 --> " + rm.Name + " " + count++ + "/" + models.Count);

                var matchFiles = new EverythingHelper().SearchFile("!c:\\ " + rm.Id + " | " + rm.Id.Replace("-", ""), EverythingSearchEnum.Video);

                var list = MagService.SearchSukebei(id: rm.Id, web: "pro");
                //list.AddRange(MagService.SearchSukebei(id: rm.Id, web: "pro"));

                if (list != null && list.Count > 0)
                {
                    if (matchFiles.Count > 0)
                    {
                        var biggestFile     = matchFiles.FirstOrDefault(x => x.Length == matchFiles.Max(y => y.Length));
                        entity.SearchStatus = 2;
                        entity.MatchFile    = biggestFile.FullName;
                    }
                    else
                    {
                        entity.SearchStatus = 1;
                    }

                    foreach (var seed in list)
                    {
                        entity.AvId     = rm.Id;
                        entity.AvName   = FileUtility.ReplaceInvalidChar(rm.Name);
                        entity.AvUrl    = rm.Url;
                        entity.MagDate  = seed.Date;
                        entity.MagSize  = seed.Size;
                        entity.MagTitle = FileUtility.ReplaceInvalidChar(seed.Title);
                        entity.MagUrl   = seed.MagUrl;
                        //entity.SearchStatus = 1;

                        //if (entity.MagSize <= 0)
                        //{
                        //    Console.WriteLine("找种子");

                        //    var ret = MagService.GetTorrentInfo(entity.MagUrl, "http://itorrents.org/torrent/", "G:\\torrent", entity.MagTitle + ".torrent").Result;

                        //    if (ret != null)
                        //    {
                        //        entity.MagSize = ret.Files.Max(x => x.Length);
                        //    }
                        //}

                        try
                        {
                            if (entity.MagTitle.Contains(rm.Id) || entity.MagTitle.Contains(rm.Id.Replace("-", "")))
                            {
                                ScanDataBaseManager.InsertRemoteScanMag(entity);
                            }
                        }
                        catch (Exception ee)
                        {
                            entity.MatchFile    = "";
                            entity.SearchStatus = 1;
                            ScanDataBaseManager.InsertRemoteScanMag(entity);
                        }
                    }
                }
                else
                {
                    Console.WriteLine(" 没搜到");
                    entity.SearchStatus = 0;
                }
            });
        }
예제 #2
0
        private static void UpdateRefreshUi(int jobId = 0)
        {
            Random ran = new Random();

            Parallel.ForEach(models, new ParallelOptions {
                MaxDegreeOfParallelism = 5
            }, rm =>
            {
                RemoteScanMag entity = new RemoteScanMag();
                entity.JobId         = jobId;

                Console.WriteLine("处理 --> " + rm.Name + models.IndexOf(rm) + "/" + models.Count);

                var matchFiles = new EverythingHelper().SearchFile(rm.Id + " | " + rm.Id.Replace("-", ""), EverythingSearchEnum.Video);

                var list = MagService.SearchSukebei(rm.Id);

                if (list != null && list.Count > 0)
                {
                    ScanDataBaseManager.DeleteMagUrlById(rm.Id);

                    if (matchFiles.Count > 0)
                    {
                        entity.SearchStatus = 2;
                        entity.MatchFile    = matchFiles.FirstOrDefault(x => x.Length == matchFiles.Max(y => y.Length)).FullName;
                    }
                    else
                    {
                        entity.SearchStatus = 1;
                    }

                    foreach (var seed in list)
                    {
                        entity.AvId     = rm.Id;
                        entity.AvName   = FileUtility.ReplaceInvalidChar(rm.Name);
                        entity.AvUrl    = rm.Url;
                        entity.MagDate  = seed.Date;
                        entity.MagSize  = seed.Size;
                        entity.MagTitle = FileUtility.ReplaceInvalidChar(seed.Title);
                        entity.MagUrl   = seed.MagUrl;
                        //entity.SearchStatus = 1;

                        ScanDataBaseManager.InsertRemoteScanMag(entity);
                    }
                }
                else
                {
                    Console.WriteLine("没搜到");
                    entity.SearchStatus = 0;
                }

                Thread.Sleep(10 * ran.Next(5));
            });
        }