Ejemplo n.º 1
0
        private List <PrepareStartUrls> GetPrepareStartUrls(List <JObject> jobjects)
        {
            if (jobjects == null || jobjects.Count == 0)
            {
                return(null);
            }

            var list = new List <PrepareStartUrls>();

            foreach (var jobject in jobjects)
            {
                var type = jobject.SelectToken("$.Type")?.ToObject <PrepareStartUrls.Types>();

                if (type == null)
                {
                    throw new SpiderExceptoin("Missing PrepareStartUrls type: " + jobject);
                }

                switch (type)
                {
                case Configuration.PrepareStartUrls.Types.GeneralDb:
                {
                    var generalDbPrepareStartUrls = new DbPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.DbList:
                {
                    var generalDbPrepareStartUrls = new DbListPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.CommonDb:
                {
                    var generalDbPrepareStartUrls = new DbCommonPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.Cycle:
                {
                    list.Add(jobject.ToObject <CyclePrepareStartUrls>());
                    break;
                }

                case Configuration.PrepareStartUrls.Types.LinkSpider:
                {
                    list.Add(jobject.ToObject <LinkSpiderPrepareStartUrls>());
                    break;
                }
                }
            }

            return(list);
        }
Ejemplo n.º 2
0
        private List <PrepareStartUrls> GetPrepareStartUrls(List <JObject> jobjects)
        {
            if (jobjects == null || jobjects.Count == 0)
            {
                return(null);
            }

            var list = new List <PrepareStartUrls>();

            foreach (var jobject in jobjects)
            {
                var type = jobject.SelectToken("$.Type")?.ToObject <PrepareStartUrls.Types>();

                if (type == null)
                {
                    throw new SpiderExceptoin("Missing PrepareStartUrls type: " + jobject);
                }

                switch (type)
                {
                case Configuration.PrepareStartUrls.Types.ConfigDb:
                {
                    var generalDbPrepareStartUrls = new ConfigurableDbPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.DbList:
                {
                    var generalDbPrepareStartUrls = new DbListPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.CommonDb:
                {
                    var generalDbPrepareStartUrls = new DbCommonPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.Cycle:
                {
                    list.Add(jobject.ToObject <CyclePrepareStartUrls>());
                    break;
                }

                case Configuration.PrepareStartUrls.Types.LinkSpider:
                {
                    list.Add(jobject.ToObject <LinkSpiderPrepareStartUrls>());
                    break;
                }

                case Configuration.PrepareStartUrls.Types.Base:
                {
                    var generalDbPrepareStartUrls = new BaseDbPrepareStartUrls();
                    foreach (var column in jobject.SelectTokens("$.Columns[*]"))
                    {
                        var c = new ConfigurableDbPrepareStartUrls.Column()
                        {
                            Name = column.SelectToken("$.Name").ToString()
                        };
                        foreach (var format in column.SelectTokens("$.Formatters[*]"))
                        {
                            var name          = format.SelectToken("$.Name").ToString();
                            var formatterType = FormatterFactory.GetFormatterType(name);
                            c.Formatters.Add((Formatter)format.ToObject(formatterType));
                        }

                        generalDbPrepareStartUrls.Columns.Add(c);
                    }
                    generalDbPrepareStartUrls.ConnectString  = jobject.SelectToken("$.ConnectString").ToString();
                    generalDbPrepareStartUrls.FormateStrings = jobject.SelectToken("$.FormateStrings").ToObject <List <string> >();
                    generalDbPrepareStartUrls.Method         = jobject.SelectToken("$.Method").ToString();
                    generalDbPrepareStartUrls.Origin         = jobject.SelectToken("$.Origin").ToString();
                    generalDbPrepareStartUrls.PostBody       = jobject.SelectToken("$.PostBody").ToString();
                    generalDbPrepareStartUrls.QueryString    = jobject.SelectToken("$.QueryString").ToString();
                    generalDbPrepareStartUrls.Referer        = jobject.SelectToken("$.Referer").ToString();
                    generalDbPrepareStartUrls.Source         = jobject.SelectToken("$.Source").ToObject <DataSource>();
                    generalDbPrepareStartUrls.Extras         = jobject.SelectToken("$.Extras").ToObject <Dictionary <string, object> >();
                    list.Add(generalDbPrepareStartUrls);
                    break;
                }
                }
            }

            return(list);
        }
Ejemplo n.º 3
0
        private List <PrepareStartUrls> GetPrepareStartUrls(List <JObject> jobjects)
        {
            if (jobjects == null || jobjects.Count == 0)
            {
                return(null);
            }

            var list = new List <PrepareStartUrls>();

            foreach (var jobject in jobjects)
            {
                var type = jobject.SelectToken("$.Type")?.ToObject <PrepareStartUrls.Types>();

                if (type == null)
                {
                    throw new SpiderExceptoin("Missing PrepareStartUrls type: " + jobject);
                }

                switch (type)
                {
                case Configuration.PrepareStartUrls.Types.ConfigDb:
                {
                    var generalDbPrepareStartUrls = new ConfigurableDbPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.DbList:
                {
                    var generalDbPrepareStartUrls = new DbListPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.CommonDb:
                {
                    var generalDbPrepareStartUrls = new DbCommonPrepareStartUrls();
                    SetDbPrepareStartUrls(generalDbPrepareStartUrls, jobject);

                    list.Add(generalDbPrepareStartUrls);
                    break;
                }

                case Configuration.PrepareStartUrls.Types.Cycle:
                {
                    list.Add(jobject.ToObject <CyclePrepareStartUrls>());
                    break;
                }

                case Configuration.PrepareStartUrls.Types.LinkSpider:
                {
                    list.Add(jobject.ToObject <LinkSpiderPrepareStartUrls>());
                    break;
                }

                case Configuration.PrepareStartUrls.Types.Base:
                {
                    var generalDbPrepareStartUrls = new BaseDbPrepareStartUrls();
                    foreach (var column in jobject.SelectTokens("$.Columns[*]"))
                    {
                        var c = new ConfigurableDbPrepareStartUrls.Column()
                        {
                            Name = column.SelectToken("$.Name").ToString()
                        };
                        foreach (var format in column.SelectTokens("$.Formatters[*]"))
                        {
                            var name          = format.SelectToken("$.Name").ToString();
                            var formatterType = FormatterFactory.GetFormatterType(name);
                            c.Formatters.Add((Formatter)format.ToObject(formatterType));
                        }
                        generalDbPrepareStartUrls.Columns.Add(c);
                    }
                    list.Add(generalDbPrepareStartUrls);
                    break;
                }
                }
            }

            return(list);
        }