Example #1
0
        private async void DownLoad(object o)
        {
            DownLoadInfo downLoadInfo = o as DownLoadInfo;

            try
            {
                if (downLoadInfo.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.WaitOne();
                }
                else
                {
                    Semaphore.WaitOne();
                }
                if (Cancel)
                {
                    return;
                }
                while (Pause & !Cancel)
                {
                    Task.Delay(300).Wait();
                }


                this.State = DownLoadState.DownLoading;

                DataBase cdb   = new DataBase("");
                Movie    movie = await cdb.SelectMovieByID(downLoadInfo.id);

                cdb.CloseDB();

                string[] url       = new string[] { Properties.Settings.Default.Bus, Properties.Settings.Default.BusEurope, Properties.Settings.Default.DB, Properties.Settings.Default.Library };
                bool[]   enableurl = new bool[] { Properties.Settings.Default.EnableBus, Properties.Settings.Default.EnableBusEu, Properties.Settings.Default.EnableDB, Properties.Settings.Default.EnableLibrary, Properties.Settings.Default.EnableFC2 };
                string[] cookies   = new string[] { Properties.Settings.Default.DBCookie };

                if (movie.title == "" | movie.smallimageurl == "" | movie.bigimageurl == "" | movie.sourceurl == "")
                {
                    await Task.Run(() => { return(Net.DownLoadFromNet(movie)); });
                }


                //写入NFO
                //if (Properties.Settings.Default.DLNFO)
                //    SaveToNFO(dm, GetNfoPath(dm));

                cdb   = new DataBase("");
                movie = await cdb.SelectMovieByID(downLoadInfo.id);

                cdb.CloseDB();


                //更新总进度
                List <string> extrapicurlList = new List <string>();
                var           list            = movie.extraimageurl.Split(';');
                foreach (var item in list)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        extrapicurlList.Add(item);
                    }
                }

                downLoadInfo.maximum  = extrapicurlList.Count;
                downLoadInfo.maximum += 2;

                //小图
                await DownLoadSmallPic(movie);

                downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                {
                    DownLoadInfo = downLoadInfo
                });                                                                                                                     //更新进度
                //大图
                await DownLoadBigPic(movie);

                downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                {
                    DownLoadInfo = downLoadInfo
                });                                                                                                                     //更新进度



                //预览图
                bool dlimageSuccess; string cookie = "";
                for (int i = 0; i < extrapicurlList.Count(); i++)
                {
                    if (!File.Exists(StaticVariable.BasePicPath + $"Extrapic\\{movie.id.ToUpper()}\\{movie.id.ToUpper()}.jpg"))
                    {
                        if (Cancel)
                        {
                            return;
                        }
                        while (Pause & !Cancel)
                        {
                            Task.Delay(300).Wait();
                        }
                        if (extrapicurlList[i].Length > 0)
                        {
                            (dlimageSuccess, cookie) = await DownLoadExtraPic(movie.id, extrapicurlList[i], cookie);

                            if (dlimageSuccess)
                            {
                                Task.Delay(1000).Wait();
                            }
                        }
                    }
                    downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                    {
                        DownLoadInfo = downLoadInfo
                    });                                                                                                                 //更新进度
                }
            }
            finally
            {
                if (downLoadInfo.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
            }
        }
Example #2
0
        private async void DownLoad(object o)
        {
            DownLoadInfo downLoadInfo = o as DownLoadInfo;

            try
            {
                if (downLoadInfo.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.WaitOne();
                }
                else
                {
                    Semaphore.WaitOne();
                }
                if (Cancel)
                {
                    return;
                }
                while (Pause & !Cancel)
                {
                    Task.Delay(300).Wait();
                }


                this.State = DownLoadState.DownLoading;

                Movie movie = DataBase.SelectMovieByID(downLoadInfo.id);


                if (movie.title == "" | movie.smallimageurl == "" | movie.bigimageurl == "" | movie.sourceurl == "")
                {
                    await Task.Run(() => { return(Net.DownLoadFromNet(movie)); });
                }



                movie = DataBase.SelectMovieByID(downLoadInfo.id);



                //更新总进度
                List <string> extrapicurlList = new List <string>();
                var           list            = movie.extraimageurl.Split(';');
                foreach (var item in list)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        extrapicurlList.Add(item);
                    }
                }

                downLoadInfo.maximum  = extrapicurlList.Count;
                downLoadInfo.maximum += 2;

                //小图
                await DownLoadSmallPic(movie);

                downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                {
                    DownLoadInfo = downLoadInfo
                });                                                                                                                     //更新进度
                //大图
                await DownLoadBigPic(movie);

                downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                {
                    DownLoadInfo = downLoadInfo
                });                                                                                                                     //更新进度



                //预览图
                bool dlimageSuccess; string cookie = "";
                for (int i = 0; i < extrapicurlList.Count(); i++)
                {
                    if (!File.Exists(GlobalVariable.BasePicPath + $"Extrapic\\{movie.id.ToUpper()}\\{movie.id.ToUpper()}.jpg"))
                    {
                        if (Cancel)
                        {
                            return;
                        }
                        while (Pause & !Cancel)
                        {
                            Task.Delay(300).Wait();
                        }
                        if (extrapicurlList[i].Length > 0)
                        {
                            (dlimageSuccess, cookie) = await DownLoadExtraPic(movie.id, extrapicurlList[i], cookie);

                            if (dlimageSuccess)
                            {
                                Task.Delay(1000).Wait();
                            }
                        }
                    }
                    downLoadInfo.progress += 1; InfoUpdate?.Invoke(this, new DownloadUpdateEventArgs()
                    {
                        DownLoadInfo = downLoadInfo
                    });                                                                                                                 //更新进度
                }
            }
            finally
            {
                if (downLoadInfo.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
            }
        }