Exemple #1
0
        private void NewLibrary(object sender, RoutedEventArgs e)
        {
            DialogInput dialogInput = new DialogInput(this, Jvedio.Language.Resources.PleaseEnter);

            if (dialogInput.ShowDialog() == true)
            {
                string name = dialogInput.Text.ToLower();


                if (vieModel_DBManagement.DataBases.Contains(name))
                {
                    new Msgbox(this, Jvedio.Language.Resources.Message_AlreadyExist).ShowDialog();
                    return;
                }

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


                vieModel_DBManagement.DataBases.Add(name);
                //刷新主界面
                RefreshMain();
            }
        }
Exemple #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            DialogInput dialogInput = new DialogInput(this, "输入数据库名称");

            if (dialogInput.ShowDialog() == true)
            {
                string name = dialogInput.Text.ToLower();


                if (vieModel_DBManagement.DataBases.Contains(name))
                {
                    new Msgbox(this, "已存在").ShowDialog();
                    return;
                }



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


                vieModel_DBManagement.DataBases.Add(name);
                //刷新主界面
                RefreshMain();
            }
        }
Exemple #3
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 #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
 private void Init()
 {
     Sqlite = new MySqlite(SqliteConfigPath);
     foreach (string key in tables.Keys)
     {
         if (!Sqlite.IsTableExist(key))
         {
             Sqlite.CreateTable(tables[key]);
         }
     }
 }
Exemple #6
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 Rename(TextBox textBox)
        {
            Console.WriteLine("Rename");
            string name = textBox.Text.ToLower();

            if (name == beforeRename)
            {
                textBox.IsEnabled  = false;
                textBox.IsReadOnly = true;
                textBox.Cursor     = Cursors.Hand;
                beforeRename       = "";
                return;
            }


            if (beforeRename == "")
            {
                if (!string.IsNullOrWhiteSpace(name) && !string.IsNullOrEmpty(name) && !vieModel_StartUp.DataBases.Contains(name) && 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);

                    if (vieModel_StartUp.DataBases.Contains("新建视频库"))
                    {
                        vieModel_StartUp.DataBases.Remove("新建视频库");
                    }

                    textBox.IsEnabled  = false;
                    textBox.IsReadOnly = true;
                    textBox.Cursor     = Cursors.Hand;

                    vieModel_StartUp.DataBases.Add(name);
                    vieModel_StartUp.DataBases.Add("新建视频库");
                }
                else
                {
                    textBox.Text = "新建视频库";
                }
            }

            else
            {
                //重命名
                if (vieModel_StartUp.DataBases.Contains(name))
                {
                    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.IsEnabled  = false;
            textBox.IsReadOnly = true;
            textBox.Cursor     = Cursors.Hand;
        }
        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;
        }