Beispiel #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="ipAddress">IP地址</param>
        /// <param name="port">端口号</param>
        public WebServer(string ipAddress, int port, int rowsPerPage, SqlData sqlData)
            : base(ipAddress, port)
        {
            this.PageItemCount = rowsPerPage;
            this.sqlData       = sqlData;
            LoginConfig.DataBaseType databaseType = this.sqlData.GetDataBaseType();
            if (databaseType == LoginConfig.DataBaseType.MYSQL)
            {
                TitleSuffix = String.Format("[MyFilm v{0}][MySQL]",
                                            System.Windows.Forms.Application.ProductVersion);
            }
            else if (databaseType == LoginConfig.DataBaseType.SQLITE)
            {
                TitleSuffix = String.Format("[MyFilm v{0}][SQLite]",
                                            System.Windows.Forms.Application.ProductVersion);
            }

            ExistResourcesBytesDic.Add("chara.png",
                                       Helper.ImageToBytes(Properties.Resources.chara, ImageFormat.Png));
            ExistResourcesBytesDic.Add("favicon.ico",
                                       Helper.IconToBytes(Properties.Resources.Film));
            ExistResourcesBytesDic.Add("file.gif",
                                       Helper.ImageToBytes(Properties.Resources.file, ImageFormat.Gif));
            ExistResourcesBytesDic.Add("folder.gif",
                                       Helper.ImageToBytes(Properties.Resources.folder, ImageFormat.Gif));
            ExistResourcesBytesDic.Add("up.gif",
                                       Helper.ImageToBytes(Properties.Resources.up, ImageFormat.Gif));
            ExistResourcesBytesDic.Add("updir.gif",
                                       Helper.ImageToBytes(Properties.Resources.updir, ImageFormat.Gif));
            ExistResourcesBytesDic.Add("myfilm.png",
                                       Helper.ImageToBytes(Properties.Resources.myfilm, ImageFormat.Png));
            ExistResourcesBytesDic.Add("warn.png",
                                       Helper.ImageToBytes(Properties.Resources.warn, ImageFormat.Png));

            ExistResourcesBytesDic.Add("main.css",
                                       Encoding.UTF8.GetBytes(Properties.Resources.main_css));
            ExistResourcesBytesDic.Add("main.js",
                                       Encoding.UTF8.GetBytes(Properties.Resources.main_js));

            ContentTypeDic.Add(".html", "text/html; charset=UTF-8");
            ContentTypeDic.Add(".css", "text/css; charset=UTF-8");
            ContentTypeDic.Add(".js", "text/javascript; charset=UTF-8");
            ContentTypeDic.Add(".ico", "image/x-icon");
            ContentTypeDic.Add(".png", "image/png");
            ContentTypeDic.Add(".gif", "image/gif");
            ContentTypeDic.Add(".jpg", "image/jpeg");
            ContentTypeDic.Add(".jpeg", "image/jpeg");
        }
Beispiel #2
0
        private void btnUpdateROF4K_Click(object sender, EventArgs e)
        {
            LoginConfig.LoginConfigData loginConfigData =
                LoginConfig.LoadXml(LoginForm.LoginConfigPath);
            WaitingForm waitingForm = new WaitingForm(
                SetWebCaptureDataResult, sqlData, loginConfigData.crawlConfig.CrawlURL);

            waitingForm.ShowDialog();

            if (this.webDataCaptureResult.code >= 0)
            {
                LoginConfig.DataBaseType databaseType = this.sqlData.GetDataBaseType();
                loginConfigData.dataBaseType = databaseType;
                if (databaseType == LoginConfig.DataBaseType.MYSQL)
                {
                    SqlDataInMySql sqlDataInMySql = sqlData as SqlDataInMySql;
                    loginConfigData.mysqlConfig.selectedDataBaseName = sqlDataInMySql.DbName;
                    loginConfigData.mysqlConfig.SelectedDataBaseWebDataCaptureTime =
                        this.webDataCaptureResult.crawlTime.ToString("yyyy-MM-dd HHH:mm:ss");
                }
                else if (databaseType == LoginConfig.DataBaseType.SQLITE)
                {
                    SqlDataInSqlite sqlDataInSqlite = sqlData as SqlDataInSqlite;
                    loginConfigData.sqliteConfig.selectedDataBasePath =
                        sqlDataInSqlite.SqliteDataBasePath;
                    loginConfigData.sqliteConfig.SelectedDataBaseWebDataCaptureTime =
                        this.webDataCaptureResult.crawlTime.ToString("yyyy-MM-dd HHH:mm:ss");
                }
                LoginConfig.SaveXml(loginConfigData, LoginForm.LoginConfigPath);
            }

            if (this.webDataCaptureResult.code > 0)
            {
                this.needReFillRamData = true;
            }

            MessageBox.Show(this.webDataCaptureResult.strMsg);
        }
Beispiel #3
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            LoginConfig.DataBaseType databaseType =
                this.tabControl.SelectedIndex == 0 ?
                LoginConfig.DataBaseType.MYSQL :
                LoginConfig.DataBaseType.SQLITE;

            String dbIP               = String.Empty;
            String dbUserName         = String.Empty;
            String dbPassword         = String.Empty;
            String dbName             = String.Empty;
            String sqliteDateBasePath = String.Empty;

            CommonString.NeedDeleteAllTableData = false;

            if (databaseType == LoginConfig.DataBaseType.MYSQL)
            {
                dbIP       = this.comboBoxIP.Text;
                dbUserName = this.comboBoxUser.Text;
                dbPassword = this.textBoxPwd.Text;
                dbName     = this.comboBoxDataBase.Text;

                List <String> databaseNameList = null;
                try
                {
                    databaseNameList = SqlDataInMySql.QueryAllDataBaseNames(
                        dbIP, dbUserName, dbPassword);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK);
                    return;
                }

                if (!databaseNameList.Contains(dbName))
                {
                    if (MessageBox.Show(String.Format("数据库 \"{0}\" 不存在,要创建吗?",
                                                      dbName), "提示",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        try
                        {
                            SqlDataInMySql.CreateDataBase(dbIP, dbUserName, dbPassword, dbName);
                            generatedSqlData = new SqlDataInMySql(dbIP, dbUserName, dbPassword, dbName);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK);
                            return;
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                else if (this.loginType == LoginType.DataBaseDataCopy)
                {
                    if (MessageBox.Show(String.Format(
                                            "数据库 \"{0}\" 已存在,此操作会覆盖该数据库相同的表,仍然要复制到该数据库吗?",
                                            dbName), "提示",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        generatedSqlData = new SqlDataInMySql(dbIP, dbUserName, dbPassword, dbName);
                        CommonString.NeedDeleteAllTableData = true;
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    generatedSqlData = new SqlDataInMySql(dbIP, dbUserName, dbPassword, dbName);
                }
            }
            else
            {
                sqliteDateBasePath = this.cbSQLiteDataBase.Text;
                generatedSqlData   = new SqlDataInSqlite(sqliteDateBasePath);

                if (this.loginType == LoginType.DataBaseDataCopy && File.Exists(sqliteDateBasePath))
                {
                    if (MessageBox.Show(String.Format(
                                            "数据库 \"{0}\"\n已存在,此操作会覆盖该数据库相同的表,仍然要复制到该数据库吗?",
                                            sqliteDateBasePath), "提示",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        return;
                    }
                    else
                    {
                        CommonString.NeedDeleteAllTableData = true;
                    }
                }
            }

            try
            {
                generatedSqlData.CreateTables();

                DateTime dateTimeLast = DateTime.MinValue;

                if (databaseType == LoginConfig.DataBaseType.MYSQL)
                {
                    if (!CommonString.LoginConfigData.mysqlConfig.hostIPs.Contains(dbIP))
                    {
                        CommonString.LoginConfigData.mysqlConfig.hostIPs.Add(dbIP);
                    }

                    if (CommonString.LoginConfigData.mysqlConfig.userNameAndPassWords.FindIndex(
                            x => x.UserName == dbUserName) == -1)
                    {
                        CommonString.LoginConfigData.mysqlConfig.userNameAndPassWords.Add(
                            new LoginConfig.UserNameAndPassWord()
                        {
                            UserName = dbUserName,
                            PassWord = Helper.Encryption(dbPassword)
                        });
                    }

                    if (CommonString.LoginConfigData.mysqlConfig.dataBaseConfigs.FindIndex(
                            x => x.Name == dbName) == -1)
                    {
                        CommonString.LoginConfigData.mysqlConfig.dataBaseConfigs.Add(
                            new LoginConfig.DataBaseConfig()
                        {
                            Name = dbName,
                            WebDataCaptureTime =
                                DateTime.MinValue.ToString("yyyy-MM-dd HHH:mm:ss")
                        });
                    }

                    CommonString.LoginConfigData.mysqlConfig.selectedUserName     = dbUserName;
                    CommonString.LoginConfigData.mysqlConfig.selectedIP           = dbIP;
                    CommonString.LoginConfigData.mysqlConfig.selectedDataBaseName = dbName;

                    DateTime.TryParse(
                        CommonString.LoginConfigData.mysqlConfig.SelectedDataBaseWebDataCaptureTime,
                        out dateTimeLast);
                }
                else
                {
                    if (CommonString.LoginConfigData.sqliteConfig.dataBaseConfigs.FindIndex(
                            x => x.Name == sqliteDateBasePath) == -1)
                    {
                        CommonString.LoginConfigData.sqliteConfig.dataBaseConfigs.Add(
                            new LoginConfig.DataBaseConfig()
                        {
                            Name = sqliteDateBasePath,
                            WebDataCaptureTime =
                                DateTime.MinValue.ToString("yyyy-MM-dd HHH:mm:ss")
                        });
                    }
                    CommonString.LoginConfigData.sqliteConfig.selectedDataBasePath = sqliteDateBasePath;

                    DateTime.TryParse(
                        CommonString.LoginConfigData.sqliteConfig.SelectedDataBaseWebDataCaptureTime,
                        out dateTimeLast);
                }

                if (this.loginType == LoginType.Normal &&
                    CommonString.LoginConfigData.crawlConfig.IsCrawl)
                {
                    TimeSpan ts = DateTime.Now.Subtract(dateTimeLast);
                    if (ts.Days >= CommonString.LoginConfigData.crawlConfig.IntervalDays)
                    {
                        WaitingForm waitingForm = new WaitingForm(
                            SetWebCaptureDataResult, generatedSqlData,
                            CommonString.LoginConfigData.crawlConfig.CrawlURL);
                        waitingForm.ShowDialog();

                        if (this.webDataCaptureResult.code >= 0)
                        {
                            dateTimeLast = this.webDataCaptureResult.crawlTime;
                        }
                        MessageBox.Show(this.webDataCaptureResult.strMsg);
                    }
                }

                if (databaseType == LoginConfig.DataBaseType.MYSQL)
                {
                    CommonString.LoginConfigData.mysqlConfig.SelectedDataBaseWebDataCaptureTime
                        = dateTimeLast.ToString("yyyy-MM-dd HHH:mm:ss");
                }
                else
                {
                    CommonString.LoginConfigData.sqliteConfig.SelectedDataBaseWebDataCaptureTime
                        = dateTimeLast.ToString("yyyy-MM-dd HHH:mm:ss");
                }

                CommonString.LoginConfigData.dataBaseType = databaseType;

                LoginConfig.SaveXml(CommonString.LoginConfigData, LoginConfigPath);

                if (this.loginType == LoginType.Normal)
                {
                    generatedSqlData.FillRamData();
                }

                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK);
            }
        }