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(); } } }
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(); } } }