Exemple #1
0
        public void TestXmlConf_NodeWithAttribute()
        {
            var doc  = new XmlDocument();
            var node = doc.CreateElement("Ith");
            var attr = doc.CreateAttribute("Min");

            attr.Value = "0";
            node.Attributes.Append(attr);

            Assert.IsTrue(XmlConf.IsItem(node));
            var item = XmlConf.ToItem(node);

            Assert.IsTrue(item.Attributes["Min"] == "0");
        }
Exemple #2
0
        private void LoadXml()
        {
            // InitMappingTable();
              xmlConf = new XmlConf(textConfig.Text);

              textName.Text = xmlConf.find(xmlConf.ListGen, TagName.DBName).Value;
              textURLPrefix.Text = xmlConf.find(xmlConf.ListGen, TagName.URLPrefix).Value;
              try { textEncoding.Text = xmlConf.find(xmlConf.ListGen, TagName.Encoding).Value; }
              catch (Exception) { textEncoding.Text = ""; }
              try { textLanguage.Text = xmlConf.find(xmlConf.ListGen, TagName.Language).Value; }
              catch (Exception) { textLanguage.Text = ""; }
              try { textVersion.Text = xmlConf.find(xmlConf.ListGen, TagName.Version).Value; }
              catch (Exception) { textVersion.Text = ""; }
              try { textType.Text = xmlConf.find(xmlConf.ListGen, TagName.Type).Value; }
              catch (Exception) { textType.Text = ""; }
              try { textSearchCleanup.Text = xmlConf.find(xmlConf.ListGen, TagName.SearchCleanup).Value; }
              catch (Exception) { textSearchCleanup.Text = ""; }
              try { textAccept.Text = xmlConf.find(xmlConf.ListGen, TagName.Accept).Value; }
              catch (Exception) { textAccept.Text = ""; }
              try { textUserAgent.Text = xmlConf.find(xmlConf.ListGen, TagName.UserAgent).Value; }
              catch (Exception) { textUserAgent.Text = ""; }
              try { textHeaders.Text = xmlConf.find(xmlConf.ListGen, TagName.Headers).Value; }
              catch (Exception) { textHeaders.Text = ""; }
              try { cbFileBasedReader.Checked = xmlConf.find(xmlConf.ListGen, TagName.FileBasedReader).Value == "true"; }
              catch (Exception) { cbFileBasedReader.Checked = false; }

              TextURL.Text = xmlConf.find(xmlConf.ListSearch, TagName.URL).Value;
              textRedir.Text = xmlConf.find(xmlConf.ListSearch, TagName.URL).Param1;
              textNextPage.Text = xmlConf.find(xmlConf.ListSearch, TagName.KeyNextPage).Value;
              textStartPage.Text = xmlConf.find(xmlConf.ListSearch, TagName.KeyStartPage).Value;
              textStepPage.Text = xmlConf.find(xmlConf.ListSearch, TagName.KeyStepPage).Value;
              textPage.Text = textStartPage.Text;
              // Load User Settings page...
              try { cbMaxActors.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyCreditsMaxItems).Value; }
              catch { cbMaxActors.Text = string.Empty; }
              cbMaxActors.Enabled = !string.IsNullOrEmpty(cbMaxActors.Text);

              string strGrabActorRoles = "";
              string strGrabActorRegex = "";
              try
              {
            strGrabActorRoles = xmlConf.find(xmlConf.ListDetail, TagName.KeyCreditsGrabActorRoles).Value;
            strGrabActorRegex = xmlConf.find(xmlConf.ListDetail, TagName.KeyCreditsRegExp).Value;
            chkGrabActorRoles.Checked = strGrabActorRoles == "true";
              }
              catch
              {
            chkGrabActorRoles.Checked = false;
            chkGrabActorRoles.Enabled = false;
              }
              if (string.IsNullOrEmpty(strGrabActorRoles) || string.IsNullOrEmpty(strGrabActorRegex)) chkGrabActorRoles.Enabled = false;
              else chkGrabActorRoles.Enabled = true;

              try { cbMaxProducers.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyProductMaxItems).Value; }
              catch { cbMaxProducers.Text = string.Empty; }
              cbMaxProducers.Enabled = !string.IsNullOrEmpty(cbMaxProducers.Text);

              try { cbMaxDirectors.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyRealiseMaxItems).Value; }
              catch { cbMaxDirectors.Text = string.Empty; }
              cbMaxDirectors.Enabled = !string.IsNullOrEmpty(cbMaxDirectors.Text);

              try { cbMaxWriters.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyWriterMaxItems).Value; }
              catch { cbMaxWriters.Text = string.Empty; }
              cbMaxWriters.Enabled = !string.IsNullOrEmpty(cbMaxWriters.Text);

              try { cbTtitlePreferredLanguage.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyTTitleLanguage).Value; }
              catch { cbTtitlePreferredLanguage.Text = string.Empty; }
              //if (string.IsNullOrEmpty(cbTtitlePreferredLanguage.Text)) cbTtitlePreferredLanguage.Enabled = false;
              //else cbTtitlePreferredLanguage.Enabled = true;

              try { cbTtitleMaxTitles.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyTTitleMaxItems).Value; }
              catch { cbTtitleMaxTitles.Text = string.Empty; }
              cbTtitleMaxTitles.Enabled = !string.IsNullOrEmpty(cbTtitleMaxTitles.Text);

              try { cbCertificationPreferredLanguage.Text = xmlConf.find(xmlConf.ListDetail, TagName.KeyCertificationLanguage).Value; }
              catch { cbCertificationPreferredLanguage.Text = string.Empty; }
              //if (string.IsNullOrEmpty(cbCertificationPreferredLanguage.Text)) cbCertificationPreferredLanguage.Enabled = false;
              //else cbCertificationPreferredLanguage.Enabled = true;

              // Add Dropdownentries to User Options
              cbTtitlePreferredLanguage.Items.Clear();
              string strTemp;
              try { strTemp = xmlConf.find(xmlConf.ListDetail, TagName.KeyTTitleLanguageAll).Value; }
              catch { strTemp = string.Empty; }
              string[] split = strTemp.Split(new Char[] { ',', ';', '/' }, StringSplitOptions.RemoveEmptyEntries);
              Array.Sort(split);
              foreach (var strDroptext in split)
              {
            if (!cbTtitlePreferredLanguage.Items.Contains(strDroptext.Trim()))
              cbTtitlePreferredLanguage.Items.Add(strDroptext.Trim());
              }
              cbTtitlePreferredLanguage.Enabled = cbTtitlePreferredLanguage.Items.Count > 0;

              cbCertificationPreferredLanguage.Items.Clear();
              try { strTemp = xmlConf.find(xmlConf.ListDetail, TagName.KeyCertificationLanguageAll).Value; }
              catch { strTemp = string.Empty; }
              split = strTemp.Split(new Char[] { ',', ';', '/' }, StringSplitOptions.RemoveEmptyEntries);
              Array.Sort(split);
              foreach (var strDroptext in split)
              {
            if (!cbCertificationPreferredLanguage.Items.Contains(strDroptext.Trim()))
              cbCertificationPreferredLanguage.Items.Add(strDroptext.Trim());
              }
              cbCertificationPreferredLanguage.Enabled = cbCertificationPreferredLanguage.Items.Count > 0;

              // Read Mapping Infos
              List<string> fields = GrabberUrlClass.FieldList();

              for (int i = 0; i < 40; i++)
              {
            try
            {
              string val1 = string.Empty, val2 = string.Empty, val3 = string.Empty, val4 = string.Empty, val5 = string.Empty, val6 = string.Empty, val7 = string.Empty;
              val1 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param1;
              if (string.IsNullOrEmpty(val1)) val1 = fields[i]; // if missing field in script, replace DB-field name with "right one"
              val2 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param2;
              val3 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param3;
              val4 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param4;
              val5 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param5;
              val6 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param6;
              val7 = xmlConf.find(xmlConf.ListMapping, "Field_" + i).Param7;

              dataGridViewMapping.Rows[i].Cells[1].Value = val1;
              dataGridViewMapping.Rows[i].Cells[2].Value = val2;
              dataGridViewMapping.Rows[i].Cells[3].Value = Convert.ToBoolean(val3);
              dataGridViewMapping.Rows[i].Cells[4].Value = Convert.ToBoolean(val4);
              dataGridViewMapping.Rows[i].Cells[5].Value = Convert.ToBoolean(val5);
              dataGridViewMapping.Rows[i].Cells[6].Value = Convert.ToBoolean(val6);
              dataGridViewMapping.Rows[i].Cells[7].Value = Convert.ToBoolean(val7);
            }
            catch (Exception)
            {
              dataGridViewMapping.Rows[i].Cells[1].Value = fields[i];
              dataGridViewMapping.Rows[i].Cells[2].Value = "";
              dataGridViewMapping.Rows[i].Cells[3].Value = false;
              dataGridViewMapping.Rows[i].Cells[4].Value = false;
              dataGridViewMapping.Rows[i].Cells[5].Value = false;
              dataGridViewMapping.Rows[i].Cells[6].Value = false;
              dataGridViewMapping.Rows[i].Cells[7].Value = false;
            }
              }
        }
Exemple #3
0
        private void ResetFormControlValues(Control parent)
        {
            cb_ParamDetail.SelectedIndex = -1;
              cb_Parameter.SelectedIndex = -1;

              foreach (Control c in parent.Controls)
              {
            if (c.Controls.Count > 0)
            {
              ResetFormControlValues(c);
            }
            else
            {
              switch (c.GetType().ToString())
              {
            case "System.Windows.Forms.ComboBox":
              ((ComboBox)c).SelectedIndex = -1;
              break;
            case "System.Windows.Forms.TextBox":
              if (c.Name != "TextSearch" && c.Name != "textPage")
                ((TextBox)c).Text = "";
              break;
            case "System.Windows.Forms.RichTextBox":
              ((RichTextBox)c).Text = "";
              break;
            case "System.Windows.Forms.ListBox":
              ((ListBox)c).Items.Clear();
              break;
              }
            }
              }

              GLiSearchMatches = 0;
              GLiSearch = 0;
              GLiSearchD = 0;
              Body = string.Empty;
              BodyDetail = string.Empty;

              xmlConf = null;
              listUrl = new ArrayList();
              pictureBoxPreviewCollection.ImageLocation = "";
              pictureBoxPreviewCover.ImageLocation = "";
        }
Exemple #4
0
        private void LoadXmloldScripts()
        {
            // InitMappingTable();
              xmlConf = new XmlConf(textConfig.Text);

              grabberscript = new Grabber.Data.GrabberScript();
              bool needsConversion = false;
              string strTemp;
              string[] split;
              List<string> fields;

              // load old script into XMLnode
              var doc = new XmlDocument();
              doc.Load(textConfig.Text);
              XmlNode script = doc.ChildNodes[1].FirstChild;

              #region init the new data structure
              if (grabberscript == null) grabberscript = new Grabber.Data.GrabberScript();

              if (grabberscript.Settings.Count == 0)
              {
            #region Create Settings
            GrabberScript.SettingsRow settings = grabberscript.Settings.NewSettingsRow();
            settings.DBName = xmlConf.find(xmlConf.listGen, TagName.DBName)._Value;
            try { settings.Version = xmlConf.find(xmlConf.listGen, TagName.Version)._Value; } catch (Exception) { settings.Version = ""; }
            settings.URLPrefix = xmlConf.find(xmlConf.listGen, TagName.URLPrefix)._Value;
            try { settings.Language = xmlConf.find(xmlConf.listGen, TagName.Language)._Value; } catch (Exception) { settings.Language = ""; }
            try { settings.Type = xmlConf.find(xmlConf.listGen, TagName.Type)._Value; }
            catch (Exception) { settings.Type = ""; }
            try { settings.SearchCleanup = xmlConf.find(xmlConf.listGen, TagName.SearchCleanup)._Value; }
            catch (Exception) { settings.SearchCleanup = ""; }
            try { settings.Encoding = xmlConf.find(xmlConf.listGen, TagName.Encoding)._Value; }
            catch (Exception) { settings.Encoding = ""; }
            try { settings.Accept = xmlConf.find(xmlConf.listGen, TagName.Accept)._Value; }
            catch (Exception) { settings.Accept = ""; }
            try { settings.Useragent = xmlConf.find(xmlConf.listGen, TagName.UserAgent)._Value; }
            catch (Exception) { settings.Useragent = ""; }
            try { settings.Headers = xmlConf.find(xmlConf.listGen, TagName.Headers)._Value; }
            catch (Exception) { settings.Headers = ""; }
            try { settings.FileBasedReader = (xmlConf.find(xmlConf.listGen, TagName.FileBasedReader)._Value == "true"); }
            catch (Exception) { settings.FileBasedReader = false; }
            grabberscript.Settings.AddSettingsRow(settings);
            #endregion
              }
              if (grabberscript.UserOptions.Count == 0)
              {
            #region Create UserOptions
            GrabberScript.UserOptionsRow useroptions = grabberscript.UserOptions.NewUserOptionsRow();
            // ToDo: Might load values here
            try { useroptions.MaxActors = xmlConf.find(xmlConf.listDetail, TagName.KeyCreditsMaxItems)._Value; }
            catch { useroptions.MaxActors = string.Empty; }

            string strGrabActorRoles = "";
            try
            {
              strGrabActorRoles = xmlConf.find(xmlConf.listDetail, TagName.KeyCreditsGrabActorRoles)._Value;
              useroptions.GrabActorRoles = strGrabActorRoles == "true";
            }
            catch
            {
              useroptions.GrabActorRoles = false;
            }

            try { useroptions.MaxProducers = xmlConf.find(xmlConf.listDetail, TagName.KeyProductMaxItems)._Value; }
            catch { useroptions.MaxProducers = string.Empty; }

            try { useroptions.MaxDirectors = xmlConf.find(xmlConf.listDetail, TagName.KeyRealiseMaxItems)._Value; }
            catch { useroptions.MaxDirectors = string.Empty; }

            try { useroptions.MaxWriters = xmlConf.find(xmlConf.listDetail, TagName.KeyWriterMaxItems)._Value; }
            catch { useroptions.MaxWriters = string.Empty; }

            try { useroptions.TitleCountry = xmlConf.find(xmlConf.listDetail, TagName.KeyTTitleLanguage)._Value; }
            catch { useroptions.TitleCountry = string.Empty; }

            try { useroptions.MaxTitles = xmlConf.find(xmlConf.listDetail, TagName.KeyTTitleMaxItems)._Value; }
            catch { useroptions.MaxTitles = string.Empty; }

            try { useroptions.CertificationCountry = xmlConf.find(xmlConf.listDetail, TagName.KeyCertificationLanguage)._Value; }
            catch { useroptions.CertificationCountry = string.Empty; }
            grabberscript.UserOptions.AddUserOptionsRow(useroptions);
            #endregion
              }
              if (grabberscript.URLSearch.Count == 0)
              {
            #region Create URLSearch
            GrabberScript.URLSearchRow urlsearch = grabberscript.URLSearch.NewURLSearchRow();
            urlsearch.URL = xmlConf.find(xmlConf.listSearch, TagName.URL)._Value;
            urlsearch.Redirection = xmlConf.find(xmlConf.listSearch, TagName.URL)._Param1;
            urlsearch.StartPage = xmlConf.find(xmlConf.listSearch, TagName.KeyStartPage)._Value;
            urlsearch.NextPage = xmlConf.find(xmlConf.listSearch, TagName.KeyNextPage)._Value;
            urlsearch.StepPage = xmlConf.find(xmlConf.listSearch, TagName.KeyStepPage)._Value;
            grabberscript.URLSearch.AddURLSearchRow(urlsearch);
            // GrabberScript.SearchRow[] fields = urlsearch.GetSearchRows().Length;
            if (grabberscript.URLSearch[0].GetSearchDetailsRows().Length == 0)
            {
              #region load URLSearchDetails
              //AntMovieCatalog.CustomFieldRow cfr = data.CustomField.NewCustomFieldRow();
              //cfr.SetParentRow(data.CustomFieldsProperties[0]);
              //cfr.Tag = customFieldDefinition[0];
              //cfr.Name = (!string.IsNullOrEmpty(TranslateColumn(customFieldDefinition[0]))) ? TranslateColumn(customFieldDefinition[0]) : customFieldDefinition[1];
              //cfr.Type = customFieldDefinition[2];
              //data.CustomField.AddCustomFieldRow(cfr);
              foreach (string property in searchUrlItemsList)
              {
            GrabberScript.SearchDetailsRow search = grabberscript.SearchDetails.NewSearchDetailsRow();
            search.SetParentRow(grabberscript.URLSearch[0]);
            search.Name = property.Replace("Link", "DetailsURL");
            try { search.Start = XmlConvert.DecodeName(script.SelectSingleNodeFast("URLSearch/KeyStart" + property).InnerText); } catch (Exception) { search.Start = ""; }
            try { search.End = XmlConvert.DecodeName(script.SelectSingleNodeFast("URLSearch/KeyEnd" + property).InnerText); } catch (Exception) { search.End = ""; }
            try { search.RegExp = XmlConvert.DecodeName(script.SelectSingleNodeFast("URLSearch/Key" + property + "RegExp").InnerText); } catch (Exception) { search.RegExp = ""; }
            grabberscript.SearchDetails.AddSearchDetailsRow(search);
              }
              #endregion
            }
            #endregion
              }

              #region create the detail items collection
              GrabberScript.DetailsRow Details = grabberscript.Details.NewDetailsRow();
              grabberscript.Details.AddDetailsRow(Details);

              foreach (var grabDetailItem in Grabber_URLClass.GrabDetailItems)
              {
            string name = grabDetailItem.GrabName;

            GrabberScript.DetailRow detail = grabberscript.Detail.NewDetailRow();
            // detail.InternalName = name;
            detail.Name = grabDetailItem.DisplayName;
            detail.Type = (name.ToLower().StartsWith("url")) ? "URL" : "Value";
            detail.SetParentRow(Details);

            try
            {
              detail.Start = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/KeyStart" + name).InnerText) ?? "";
              detail.End = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/KeyEnd" + name).InnerText) ?? "";
              detail.Param1 = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/KeyStart" + name).Attributes["Param1"].InnerText) ?? "";
              detail.Param2 = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/KeyStart" + name).Attributes["Param2"].InnerText) ?? "";
              try { detail.Param3 = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/Key" + name + "RegExp").InnerText) ?? ""; }
              catch (Exception) { detail.Param3 = ""; }
              detail.Index = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/Key" + name + "Index").InnerText) ?? "";
              detail.SourcePage = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/Key" + name + "Page").InnerText) ?? "";
              try { detail.MaxItems = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/Key" + name + "MaxItems").InnerText) ?? ""; }
              catch (Exception) { detail.MaxItems = ""; }
              try { detail.Filter = XmlConvert.DecodeName(script.SelectSingleNodeFast("Details/Key" + name + "Language").InnerText); }
              catch (Exception) { detail.Filter = ""; }
              detail.GetRoles = true;
              detail.ApplyReplacements = false;
              detail.RunTime = 0;
              detail.FinalRegExp = "";
              // detail.Result = "";

              // strActivePage = this.LoadPage(strPage);
            }
            catch (Exception)
            {
              // if Start fails, we have to assume, there is no definition, so we create an empty one
              detail.Start = "";
              detail.End = "";
              detail.Param1 = "";
              detail.Param2 = "";
              detail.Param3 = "";
              detail.Index = "";
              detail.SourcePage = "";
              detail.MaxItems = "";
              detail.Filter = "";
              detail.GetRoles = true;
              detail.ApplyReplacements = false;
              detail.RunTime = 0;
              detail.FinalRegExp = "";
              // detail.Result = "";
            }

            grabberscript.Detail.AddDetailRow(detail);

              }

              #endregion

              #region create the mapper collection
              // Read Mapping Infos
              fields = Grabber.Grabber_URLClass.FieldList();

              if (grabberscript.MappingRules.Count == 0)
              {
            GrabberScript.MappingRulesRow row = grabberscript.MappingRules.NewMappingRulesRow();
            grabberscript.MappingRules.AddMappingRulesRow(row);
              }

              for (int i = 0; i < 40; i++)
              {
            GrabberScript.MappingRuleRow mappingRule = grabberscript.MappingRule.NewMappingRuleRow();
            mappingRule.SetParentRow(grabberscript.MappingRules[0]);
            try
            {
              string val1 = string.Empty,
            val2 = string.Empty,
            val3 = string.Empty,
            val4 = string.Empty,
            val5 = string.Empty,
            val6 = string.Empty,
            val7 = string.Empty;
              val1 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param1;
              if (string.IsNullOrEmpty(val1))
            val1 = fields[i]; // if missing field in script, replace DB-field name with "right one"
              val2 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param2;
              val3 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param3;
              val4 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param4;
              val5 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param5;
              val6 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param6;
              val7 = xmlConf.find(xmlConf.listMapping, "Field_" + i)._Param7;

              mappingRule.Number = i;
              mappingRule.InputField = val1;
              mappingRule.OutputField = val2;
              mappingRule.Replace = Convert.ToBoolean(val3);
              mappingRule.AddStart = Convert.ToBoolean(val4);
              mappingRule.AddEnd = Convert.ToBoolean(val5);
              mappingRule.MergePreferInput = Convert.ToBoolean(val6);
              mappingRule.MergePreferOutput = Convert.ToBoolean(val7);
              mappingRule.ApplyReplacements = false; //new param, initialized false
            }
            catch (Exception)
            {
              mappingRule.Number = i;
              mappingRule.InputField = fields[i];
              mappingRule.OutputField = "";
              mappingRule.Replace = false;
              mappingRule.AddStart = false;
              mappingRule.AddEnd = false;
              mappingRule.MergePreferInput = false;
              mappingRule.MergePreferOutput = false;
              mappingRule.ApplyReplacements = false; //new param, initialized false
            }
            grabberscript.MappingRule.AddMappingRuleRow(mappingRule);

              }

              #endregion

              #endregion

              // save new format - will overwrite the old script !!!
        }