Esempio n. 1
0
        public static BitmapImage GetActorImage(string name)
        {
            //加载图片
            BitmapImage image = ImageProcess.GetBitmapImage(name, "Actresses");

            if (image == null)
            {
                image = DefaultActorImage;
            }
            return(image);
        }
Esempio n. 2
0
        private async void DownLoad(object o)
        {
            Semaphore.WaitOne();
            Actress actress = o as Actress;

            if (Cancel | actress.id == "")
            {
                Semaphore.Release();
                return;
            }
            try
            {
                this.State = DownLoadState.DownLoading;

                //下载头像
                if (!string.IsNullOrEmpty(actress.imageurl))
                {
                    string url        = actress.imageurl;
                    byte[] imageBytes = null;
                    imageBytes = await Task.Run(() => { return(Net.DownLoadFile(url).filebytes); });

                    if (imageBytes != null)
                    {
                        ImageProcess.SaveImage(actress.name, imageBytes, ImageType.ActorImage, url);
                        actress.smallimage = ImageProcess.GetBitmapImage(actress.name, "Actresses");
                    }
                }
                //下载信息
                bool success = false;
                success = await Task.Run(() =>
                {
                    Task.Delay(300).Wait();
                    return(Net.DownActress(actress.id, actress.name, callback: (message) => { MessageCallBack?.Invoke(this, new MessageCallBackEventArgs(message)); }));
                });

                if (success)
                {
                    actress = DataBase.SelectInfoFromActress(actress);
                }
                ProgressBarUpdate.value += 1;
                InfoUpdate?.Invoke(this, new ActressUpdateEventArgs()
                {
                    Actress = actress, progressBarUpdate = ProgressBarUpdate, state = State
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Semaphore.Release();
            }
        }
Esempio n. 3
0
        private void UpdateMain(string oldID, string newID)
        {
            Main  main  = App.Current.Windows[0] as Main;
            Movie movie = SelectMovie(newID);

            addTag(ref movie);
            movie.smallimage = ImageProcess.GetBitmapImage(movie.id, "SmallPic");
            movie.bigimage   = ImageProcess.GetBitmapImage(movie.id, "BigPic");

            for (int i = 0; i < main.vieModel.CurrentMovieList.Count; i++)
            {
                try
                {
                    if (main.vieModel.CurrentMovieList[i]?.id.ToUpper() == oldID.ToUpper())
                    {
                        main.vieModel.CurrentMovieList[i] = null;
                        main.vieModel.CurrentMovieList[i] = movie;
                        break;
                    }
                }
                catch { }
            }


            for (int i = 0; i < main.vieModel.MovieList.Count; i++)
            {
                try
                {
                    if (main.vieModel.MovieList[i]?.id.ToUpper() == oldID.ToUpper())
                    {
                        main.vieModel.MovieList[i] = null;
                        main.vieModel.MovieList[i] = movie;
                        break;
                    }
                }
                catch { }
            }

            for (int i = 0; i < main.vieModel.FilterMovieList.Count; i++)
            {
                try
                {
                    if (main.vieModel.FilterMovieList[i]?.id.ToUpper() == oldID.ToUpper())
                    {
                        main.vieModel.FilterMovieList[i] = null;
                        main.vieModel.FilterMovieList[i] = movie;
                        break;
                    }
                }
                catch { }
            }
        }
Esempio n. 4
0
        public static void SetImage(ref Movie movie)
        {
            //加载图片
            BitmapImage smallimage = ImageProcess.GetBitmapImage(movie.id, "SmallPic");
            BitmapImage bigimage   = ImageProcess.GetBitmapImage(movie.id, "BigPic");

            if (smallimage == null)
            {
                smallimage = DefaultSmallImage;
            }
            if (bigimage == null)
            {
                bigimage = DefaultBigImage;
            }
            movie.smallimage = smallimage;
            movie.bigimage   = bigimage;
        }
Esempio n. 5
0
        private async void DownLoad(object o)
        {
            //下载信息
            Movie movie = o as Movie;

            if (movie.id.ToUpper().StartsWith("FC2"))
            {
                SemaphoreFC2.WaitOne();
            }
            else
            {
                Semaphore.WaitOne();//阻塞
            }
            if (Cancel || string.IsNullOrEmpty(movie.id))
            {
                if (movie.id.ToUpper().StartsWith("FC2"))
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
                return;
            }

            //下载信息
            State = DownLoadState.DownLoading;
            if (movie.IsToDownLoadInfo() || enforce)
            {
                //满足一定条件才下载信息
                HttpResult httpResult = await Net.DownLoadFromNet(movie);

                if (httpResult != null)
                {
                    if (httpResult.Success)
                    {
                        InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
                        {
                            Movie = movie, progress = downLoadProgress.value, Success = httpResult.Success
                        });                                                                                                                                    //委托到主界面显示
                    }
                    else
                    {
                        string error = httpResult.Error != "" ? httpResult.Error : httpResult.StatusCode.ToStatusMessage();
                        MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {movie.id} {Jvedio.Language.Resources.DownloadMessageFailFor}:{error}"));
                    }
                }
            }
            DetailMovie dm = DataBase.SelectDetailMovieById(movie.id);

            if (dm == null)
            {
                if (movie.id.ToUpper().StartsWith("FC2"))
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
                return;
            }

            if (!File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") || enforce)
            {
                await Net.DownLoadImage(dm.bigimageurl, ImageType.BigImage, dm.id);//下载大图
            }



            //fc2 没有缩略图
            if (dm.id.IndexOf("FC2") >= 0)
            {
                //复制海报图作为缩略图
                if (File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") && !File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg"))
                {
                    try {
                        File.Copy(BasePicPath + $"BigPic\\{dm.id}.jpg", BasePicPath + $"SmallPic\\{dm.id}.jpg");
                    }
                    catch (Exception ex)
                    {
                        Logger.LogF(ex);
                    }
                }
            }
            else
            {
                if (!File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg") || enforce)
                {
                    await Net.DownLoadImage(dm.smallimageurl, ImageType.SmallImage, dm.id); //下载小图
                }
            }
            dm.smallimage = ImageProcess.GetBitmapImage(dm.id, "SmallPic");
            InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
            {
                Movie = dm, progress = downLoadProgress.value, state = State
            });                                                              //委托到主界面显示
            dm.bigimage = ImageProcess.GetBitmapImage(dm.id, "BigPic");
            lock (downLoadProgress.lockobject) downLoadProgress.value += 1;  //完全下载完一个影片
            InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
            {
                Movie = dm, progress = downLoadProgress.value, state = State, Success = true
            });                                //委托到主界面显示
            Task.Delay(DelayInvterval).Wait(); //每个线程之间暂停
            //取消阻塞
            if (movie.id.ToUpper().IndexOf("FC2") >= 0)
            {
                SemaphoreFC2.Release();
            }
            else
            {
                Semaphore.Release();
            }
        }
Esempio n. 6
0
        private async void DownLoad(object o)
        {
            //下载信息=>下载图片
            Movie movie = o as Movie;

            if (movie.id.ToUpper().StartsWith("FC2"))
            {
                SemaphoreFC2.WaitOne();
            }
            else
            {
                Semaphore.WaitOne();                                                                   //阻塞
            }
            if (Cancel || string.IsNullOrEmpty(movie.id))
            {
                if (movie.id.ToUpper().StartsWith("FC2"))
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
                return;
            }
            bool success; string resultMessage;

            //下载信息
            State = DownLoadState.DownLoading;
            if (Net.IsToDownLoadInfo(movie) || enforce)
            {
                //满足一定条件才下载信息
                (success, resultMessage) = await Task.Run(() => { return(Net.DownLoadFromNet(movie)); });

                InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
                {
                    Movie = movie, progress = downLoadProgress.value, Success = success
                });                                                                                                                      //委托到主界面显示
                if (!success)
                {
                    MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {movie.id} {Jvedio.Language.Resources.DownloadMessageFailFor}:{(resultMessage.ToStatusMessage())}"));
                }
            }


            DetailMovie dm = new DetailMovie();

            dm = DataBase.SelectDetailMovieById(movie.id);

            if (!File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") || enforce)
            {
                string message2 = "";
                (bool success2, string cookie2) = await Net.DownLoadImage(dm.bigimageurl, ImageType.BigImage, dm.id, callback : (sc) => { message2 = sc.ToString(); });//下载大图

                //if (!success2) MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {dm.id} 海报图下载失败,原因:{message2.ToStatusMessage()}"));
            }



            //fc2 没有缩略图
            if (dm.id.IndexOf("FC2") >= 0)
            {
                //复制海报图作为缩略图
                if (File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") && !File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg"))
                {
                    File.Copy(BasePicPath + $"BigPic\\{dm.id}.jpg", BasePicPath + $"SmallPic\\{dm.id}.jpg");
                }
            }
            else
            {
                if (!File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg") || enforce)
                {
                    string message = "";
                    (bool success1, string cookie) = await Net.DownLoadImage(dm.smallimageurl, ImageType.SmallImage, dm.id, callback : (sc) => { message = sc.ToString(); }); //下载小图

                    //if (!success1) MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {dm.id} 缩略图下载失败,原因:{message.ToStatusMessage()}"));
                }
            }
            dm.smallimage = ImageProcess.GetBitmapImage(dm.id, "SmallPic");
            InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
            {
                Movie = dm, progress = downLoadProgress.value, state = State
            });                                                              //委托到主界面显示
            dm.bigimage = ImageProcess.GetBitmapImage(dm.id, "BigPic");
            lock (downLoadProgress.lockobject) downLoadProgress.value += 1;  //完全下载完一个影片
            InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
            {
                Movie = dm, progress = downLoadProgress.value, state = State, Success = true
            });                                //委托到主界面显示
            Task.Delay(DelayInvterval).Wait(); //每个线程之间暂停
            //取消阻塞
            if (movie.id.ToUpper().IndexOf("FC2") >= 0)
            {
                SemaphoreFC2.Release();
            }
            else
            {
                Semaphore.Release();
            }
        }