Beispiel #1
0
        public ManageOfRequest(MainWindow mainWindow, SpiderManager spider, ConfigOfRequest requestConfig)
        {
            InitializeComponent();

            MainWindow    = mainWindow;
            Spider        = spider;
            RequestConfig = requestConfig;
            InitData(spider);
        }
        public void UpdateConfig()
        {
            //爬虫配置变更 无爬虫为异常
            var spiderName = cb_Solution.SelectedValue.ToString();

            if (string.IsNullOrEmpty(spiderName))
            {
                MessageBox.Show("配置的爬虫名称不可为空");
                return;
            }
            //更新对应的配置
            var             spiderConfig  = SpiderManager.ConfigOfSpiders.Configs.First(c => c.SpiderName == spiderName);
            ConfigOfRequest requestConfig = spiderConfig.RequestConfig;

            requestConfig.URL = tb_SourceURL.Text;
            ConfigOfProcess managerConfig = spiderConfig.ManageConfig;
            //spiderConfig.GrabConfigs
        }
        public void LoadConfig(ConfigOfSpider spiderConfig)
        {
            if (spiderConfig == null)
            {
                return;
            }

            //SpiderManager.CurrentConfigOfSpider = spiderConfig;
            //SpiderManager.ConfigOfSpiders.LatestSpiderConfigName = spiderConfig.SpiderName;
            //加载配置内容
            //加载 RequestConfig
            ConfigOfRequest requestConfig = spiderConfig.RequestConfig;

            tb_SourceURL.Text = requestConfig.URL;
            //加载 ManageConfig
            ConfigOfProcess managerConfig = spiderConfig.ManageConfig;
            //加载 List<IGrabConfig>
            List <IGrabConfig> grabConfigs = new List <IGrabConfig>();

            grabConfigs.AddRange(spiderConfig.GrabConfigs);
            var grabTypeStrings = Enum.GetNames(typeof(EGrabType));

            foreach (var grabTypeString in grabTypeStrings)
            {
                if (!grabConfigs.Exists(c => c.GetGrabType().ToString() == grabTypeString))
                {
                    var grabType = (EGrabType)Enum.Parse(typeof(EGrabType), grabTypeString);
                    if (grabType != EGrabType.None)
                    {
                        grabConfigs.Add(IGrabConfig.GetGrabConfig(grabType, spiderConfig));
                    }
                }
            }
            lb_GrabConfigs.ItemsSource = grabConfigs;
            //加载选中项
            //cb_Solution.SelectedValue = SpiderManager.ConfigOfSpiders.LatestSpiderConfigName;
            cb_Solution.SelectedIndex = SpiderManager.ConfigOfSpiders.Configs.Select(c => c.SpiderName).ToList().IndexOf(SpiderManager.ConfigOfSpiders.LatestSpiderConfigName);
        }