Exemple #1
0
        private void InitDataBase()
        {
            //GlobalConnection.Init();
            if (!File.Exists(AIDataBasePath))
            {
                MySqlite db = new MySqlite(AIDataBasePath);
                db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite(AIDataBasePath);
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                }
                db.CloseDB();
            }


            if (!File.Exists(TranslateDataBasePath))
            {
                MySqlite db = new MySqlite(TranslateDataBasePath);
                db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite(TranslateDataBasePath);
                if (!db.IsTableExist("youdao"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                }
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                }
                db.CloseDB();
            }

            if (!File.Exists(MagnetsDataBasePath))
            {
                MySqlite db = new MySqlite(MagnetsDataBasePath);
                db.CreateTable(DataBase.SQLITETABLE_MAGNETS);
                db.CloseDB();
            }
        }
Exemple #2
0
        public void BeginDownLoad()
        {
            if (ActorList.Count == 0)
            {
                this.State = DownLoadState.Completed; return;
            }


            //先根据 BusActress.sqlite 获得 id
            List <Actress> actresslist = new List <Actress>();

            foreach (Actress item in ActorList)
            {
                if (item != null && (item.smallimage == null || string.IsNullOrEmpty(item.birthday)))
                {
                    Actress  actress = item;
                    MySqlite db      = new MySqlite("BusActress");
                    if (item.id == "")
                    {
                        actress.id = db.GetInfoBySql($"select id from censored where name='{item.name}'");
                        if (item.imageurl == null)
                        {
                            actress.imageurl = db.GetInfoBySql($"select smallpicurl from censored where id='{actress.id}'");
                        }
                    }
                    else
                    {
                        if (item.imageurl == null)
                        {
                            actress.imageurl = db.GetInfoBySql($"select smallpicurl from censored where id='{actress.id}'");
                        }
                    }
                    db.CloseDB();
                    actresslist.Add(actress);
                }
            }

            ProgressBarUpdate.maximum = actresslist.Count;
            //TODO
            for (int i = 0; i < actresslist.Count; i++)
            {
                Console.WriteLine("开始进程 " + i);
                Thread threadObject = new Thread(DownLoad);
                threadObject.Start(actresslist[i]);
            }
        }
Exemple #3
0
        public void BeginDownLoad()
        {
            if (ActorList.Count == 0)
            {
                this.State = DownLoadState.Completed; return;
            }


            //先根据 BusActress.sqlite 获得 id
            List <Actress> actresslist = new List <Actress>();

            foreach (Actress item in ActorList)
            {
                if (item != null && (item.smallimage == null || string.IsNullOrEmpty(item.birthday)))
                {
                    Actress  actress = item;
                    MySqlite db      = new MySqlite("BusActress");
                    if (string.IsNullOrEmpty(item.id))
                    {
                        actress.id = db.GetInfoBySql($"select id from censored where name='{item.name}'");
                    }
                    db.CloseDB();
                    if (string.IsNullOrEmpty(item.imageurl))
                    {
                        //TODO 没法解决演员头像骑兵和步兵的问题
                        //默认骑兵吧,反正拍过步兵的肯定也拍过骑兵
                        //拼接网址
                        actress.imageurl = $"{JvedioServers.Bus.Url}pics/actress/{item.id}_a.jpg";
                    }

                    actresslist.Add(actress);
                }
            }

            ProgressBarUpdate.maximum = actresslist.Count;
            for (int i = 0; i < actresslist.Count; i++)
            {
                Console.WriteLine("开始进程 " + i);
                Thread threadObject = new Thread(DownLoad);
                threadObject.Start(actresslist[i]);
            }
        }
Exemple #4
0
        private void InitDataBase()
        {
            if (!File.Exists(AIDataBasePath))
            {
                MySqlite db = new MySqlite("AI");
                db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite("AI");
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                }
                db.CloseDB();
            }


            if (!File.Exists(TranslateDataBasePath))
            {
                MySqlite db = new MySqlite("Translate");
                db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite("Translate");
                if (!db.IsTableExist("youdao"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                }
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                }
                db.CloseDB();
            }
        }
Exemple #5
0
        public static Task <Int32Rect> GetAIResult(Movie movie, string path)
        {
            return(Task.Run(() =>
            {
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(path);
                string token = AccessToken.getAccessToken();
                string FaceJson = FaceDetect.faceDetect(token, bitmap);

                Dictionary <string, string> result;
                Int32Rect int32Rect;
                (result, int32Rect) = FaceParse.Parse(FaceJson);
                if (result != null && int32Rect != Int32Rect.Empty)
                {
                    MySqlite dataBase = new MySqlite("AI");
                    dataBase.SaveBaiduAIByID(movie.id, result);
                    dataBase.CloseDB();
                    return int32Rect;
                }
                else
                {
                    return Int32Rect.Empty;
                }
            }));
        }
Exemple #6
0
 private void Dispose()
 {
     Sqlite?.CloseDB();
 }
Exemple #7
0
        private async void Button_Click_2(object sender, RoutedEventArgs e)
        {
            cts = new CancellationTokenSource();
            cts.Token.Register(() => { HandyControl.Controls.Growl.Info("取消当前任务!", "DBManageGrowl"); });
            ct = cts.Token;

            //数据库管理
            var    cb   = CheckBoxWrapPanel.Children.OfType <CheckBox>().ToList();
            string path = "";

            if (vieModel_DBManagement.CurrentDataBase.ToLower() == "info")
            {
                path = $"{vieModel_DBManagement.CurrentDataBase}";
            }
            else
            {
                path = $"DataBase\\{vieModel_DBManagement.CurrentDataBase}";
            }
            MySqlite db = new MySqlite(path);


            if ((bool)cb[1].IsChecked || (bool)cb[2].IsChecked)
            {
                WaitingPanel.Visibility = Visibility.Visible;
            }

            if ((bool)cb[0].IsChecked)
            {
                //重置信息
                db.DeleteTable("movie");
                db.CreateTable(DataBase.SQLITETABLE_MOVIE);
                HandyControl.Controls.Growl.Success("成功重置信息", "DBManageGrowl");
            }

            if ((bool)cb[1].IsChecked)
            {
                //删除不存在影片
                long num = 0;
                await Task.Run(() =>
                {
                    var movies = db.SelectMoviesBySql("select * from movie");
                    try
                    {
                        movies.ForEach(movie =>
                        {
                            ct.ThrowIfCancellationRequested();
                            if (!File.Exists(movie.filepath))
                            {
                                db.DeleteByField("movie", "id", movie.id);
                                num++;
                            }
                        });
                    }
                    catch (OperationCanceledException ex)
                    {
                        Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {ex.Message}");
                        return(false);
                    }
                    return(true);
                }, ct);

                HandyControl.Controls.Growl.Success($"成功删除 {num} 个不存在的影片", "DBManageGrowl");
            }

            if ((bool)cb[2].IsChecked)
            {
                var movies = db.SelectMoviesBySql("select * from movie");
                StringCollection ScanPath = ReadScanPathFromConfig(vieModel_DBManagement.CurrentDataBase);

                long num = 0;

                await Task.Run(() =>
                {
                    try
                    {
                        movies.ForEach(movie =>
                        {
                            ct.ThrowIfCancellationRequested();
                            if (!IsPathIn(movie.filepath, ScanPath))
                            {
                                db.DeleteByField("movie", "id", movie.id);
                                num++;
                            }
                        });
                    }
                    catch (OperationCanceledException ex)
                    {
                        Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {ex.Message}");
                        return(false);
                    }

                    return(true);
                }, ct);


                HandyControl.Controls.Growl.Success($"成功删除 {num} 个不位于指定目录的影片", "DBManageGrowl");
            }

            db.Vacuum();
            db.CloseDB();
            cts.Dispose();
            WaitingPanel.Visibility = Visibility.Hidden;

            await Task.Run(() => { Task.Delay(500).Wait(); });

            Main   main   = null;
            Window window = Jvedio.GetWindow.Get("Main");

            if (window != null)
            {
                main = (Main)window;
            }
            main?.vieModel.Reset();
        }
        private void InitDataBase()
        {
            if (!File.Exists(InfoDataBasePath))
            {
                MySqlite db = new MySqlite("Info");
                db.CreateTable(DataBase.SQLITETABLE_MOVIE);
                db.CreateTable(DataBase.SQLITETABLE_ACTRESS);
                db.CreateTable(DataBase.SQLITETABLE_LIBRARY);
                db.CreateTable(DataBase.SQLITETABLE_JAVDB);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite("Info");
                if (!db.IsTableExist("movie") || !db.IsTableExist("actress") || !db.IsTableExist("library") || !db.IsTableExist("javdb"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_MOVIE);
                    db.CreateTable(DataBase.SQLITETABLE_ACTRESS);
                    db.CreateTable(DataBase.SQLITETABLE_LIBRARY);
                    db.CreateTable(DataBase.SQLITETABLE_JAVDB);
                }
                db.CloseDB();
            }


            if (!File.Exists(AIDataBasePath))
            {
                MySqlite db = new MySqlite("AI");
                db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite("AI");
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUAI);
                }
                db.CloseDB();
            }


            if (!File.Exists(TranslateDataBasePath))
            {
                MySqlite db = new MySqlite("Translate");
                db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                db.CloseDB();
            }
            else
            {
                //是否具有表结构
                MySqlite db = new MySqlite("Translate");
                if (!db.IsTableExist("youdao"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_YOUDAO);
                }
                if (!db.IsTableExist("baidu"))
                {
                    db.CreateTable(DataBase.SQLITETABLE_BAIDUTRANSLATE);
                }
                db.CloseDB();
            }
        }
        private void Rename(TextBox textBox)
        {
            string name = textBox.Text;

            //不修改
            if (name == beforeRename)
            {
                textBox.IsReadOnly = true;
                textBox.Cursor     = Cursors.Hand;
                beforeRename       = "";
                return;
            }


            //新建一个数据库
            if (beforeRename == "")
            {
                if (!string.IsNullOrWhiteSpace(name) && !string.IsNullOrEmpty(name) && !IsItemInList(name, vieModel_StartUp.DataBases) && name.IndexOfAny(Path.GetInvalidFileNameChars()) == -1)
                {
                    //新建

                    MySqlite db = new MySqlite("DataBase\\" + name);
                    db.CreateTable(DataBase.SQLITETABLE_MOVIE);
                    db.CreateTable(DataBase.SQLITETABLE_ACTRESS);
                    db.CreateTable(DataBase.SQLITETABLE_LIBRARY);
                    db.CreateTable(DataBase.SQLITETABLE_JAVDB);
                    db.CloseDB();

                    if (vieModel_StartUp.DataBases.Contains(Jvedio.Language.Resources.NewLibrary))
                    {
                        vieModel_StartUp.DataBases.Remove(Jvedio.Language.Resources.NewLibrary);
                    }
                    textBox.IsReadOnly = true;
                    textBox.Cursor     = Cursors.Hand;

                    vieModel_StartUp.DataBases.Add(name);
                    vieModel_StartUp.DataBases.Add(Jvedio.Language.Resources.NewLibrary);
                }
                else
                {
                    textBox.Text = Jvedio.Language.Resources.NewLibrary;
                }
            }
            else
            {
                //重命名
                if (IsItemInList(name, vieModel_StartUp.DataBases))
                {
                    textBox.Text = beforeRename; //重复的
                }
                else
                {
                    //重命名
                    if (name.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) == -1)
                    {
                        try
                        {
                            File.Move(AppDomain.CurrentDomain.BaseDirectory + $"DataBase\\{beforeRename}.sqlite",
                                      AppDomain.CurrentDomain.BaseDirectory + $"DataBase\\{name}.sqlite");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                            Logger.LogE(ex);
                        }
                    }
                    else
                    {
                        textBox.Text = beforeRename;
                    }
                }
                beforeRename = "";
            }
            textBox.IsReadOnly    = true;
            textBox.Cursor        = Cursors.Hand;
            textBox.TextAlignment = TextAlignment.Left;
        }
Exemple #10
0
        private async void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            button.IsEnabled = false;
            cts = new CancellationTokenSource();
            cts.Token.Register(() => { HandyControl.Controls.Growl.Info(Jvedio.Language.Resources.Cancel, GrowlToken); });
            ct = cts.Token;

            //数据库管理
            var      cb   = CheckBoxWrapPanel.Children.OfType <CheckBox>().ToList();
            string   path = $"DataBase\\{vieModel_DBManagement.CurrentDataBase}";
            MySqlite db   = new MySqlite(path);

            if ((bool)cb[0].IsChecked)
            {
                //重置信息
                db.DeleteTable("movie");
                db.CreateTable(DataBase.SQLITETABLE_MOVIE);
                //清空最近播放和最近创建
                ClearDateBefore(DateTime.Now);
                db.Vacuum();
                HandyControl.Controls.Growl.Success(Jvedio.Language.Resources.Message_Success, GrowlToken);
            }

            if ((bool)cb[1].IsChecked)
            {
                //删除不存在影片
                long num = 0;
                await Task.Run(() =>
                {
                    var movies = db.SelectMoviesBySql("select * from movie");
                    try
                    {
                        vieModel_DBManagement.ProgressBarValue = 0;

                        for (int i = 0; i < movies.Count; i++)
                        {
                            ct.ThrowIfCancellationRequested();
                            if (!File.Exists(movies[i].filepath))
                            {
                                db.DeleteByField("movie", "id", movies[i].id);
                                num++;
                            }
                            if (movies.Count > 0)
                            {
                                vieModel_DBManagement.ProgressBarValue = (int)((double)(i + 1) / (double)movies.Count * 100);
                            }
                        }
                        db.Vacuum();
                    }
                    catch (OperationCanceledException ex)
                    {
                        Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {ex.Message}");
                    }
                }, ct);

                HandyControl.Controls.Growl.Success($"{ Jvedio.Language.Resources.SuccessDelete} {num}", GrowlToken);
            }

            if ((bool)cb[2].IsChecked)
            {
                var movies = db.SelectMoviesBySql("select * from movie");
                StringCollection ScanPath = ReadScanPathFromConfig(vieModel_DBManagement.CurrentDataBase);

                long num = 0;
                await Task.Run(() =>
                {
                    try
                    {
                        vieModel_DBManagement.ProgressBarValue = 0;

                        for (int i = 0; i < movies.Count; i++)
                        {
                            ct.ThrowIfCancellationRequested();
                            if (!IsPathIn(movies[i].filepath, ScanPath))
                            {
                                db.DeleteByField("movie", "id", movies[i].id);
                                num++;
                            }
                            if (movies.Count > 0)
                            {
                                vieModel_DBManagement.ProgressBarValue = (int)((double)(i + 1) / (double)movies.Count * 100);
                            }
                        }

                        db.Vacuum();
                    }
                    catch (OperationCanceledException ex)
                    {
                        Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {ex.Message}");
                    }
                }, ct);


                HandyControl.Controls.Growl.Success($"{Jvedio.Language.Resources.SuccessDelete} {num}", GrowlToken);
            }

            if ((bool)cb[3].IsChecked)
            {
                if (Properties.Settings.Default.SaveInfoToNFO)
                {
                    var detailMovies = db.SelectDetailMoviesBySql("select * from movie");
                    await Task.Run(() =>
                    {
                        try
                        {
                            vieModel_DBManagement.ProgressBarValue = 0;

                            for (int i = 0; i < detailMovies.Count; i++)
                            {
                                ct.ThrowIfCancellationRequested();
                                FileProcess.SaveNfo(detailMovies[i]);
                                if (detailMovies.Count > 0)
                                {
                                    vieModel_DBManagement.ProgressBarValue = (int)((double)(i + 1) / (double)detailMovies.Count * 100);
                                }
                            }
                        }
                        catch (OperationCanceledException ex)
                        {
                            Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {ex.Message}");
                        }
                    }, ct);

                    HandyControl.Controls.Growl.Success($"{Jvedio.Language.Resources.Message_Success}", GrowlToken);
                }
                else
                {
                    HandyControl.Controls.Growl.Success($"{Jvedio.Language.Resources.setnfo}", GrowlToken);
                }
            }
            db.CloseDB();
            cts.Dispose();
            await Task.Run(() => { Task.Delay(500).Wait(); });

            Main main = (Main)GetWindowByName("Main");

            main?.vieModel.Reset();
            button.IsEnabled = true;
        }