Beispiel #1
0
        public static void AddOrUpdate(FeedModel feed)
        {
            using (var db = new LiteDatabase(@"LiteDb/Feeds.db"))
            {
                var col = db.GetCollection <FeedModel>("feeds");

                if (feed.Id == 0)
                {
                    col.Insert(feed);
                }
                else
                {
                    col.Update(feed);
                }
            }
        }
Beispiel #2
0
        public static FeedRequest ToFeedRequest(FeedModel feed)
        {
            var request = new Request(feed.Address);

            request.RunJS = (feed.RunJS == Status.ON);
            if (request.RunJS)
            {
                request.WaitDom = feed.WaitDom;
            }

            if (feed.Headers != null)
            {
                request.Headers = GetHeaders(feed.Headers);

                if (request.Headers.Count(m => m.Name == "Referer") == 0)
                {
                    request.Headers.Add(new WebHeader("Referer", request.Uri.AbsoluteUri));
                }
            }

            request.Method = feed.Method;
            if (feed.Method == "POST" && !string.IsNullOrEmpty(feed.Data))
            {
                request.ContentType = feed.ContentType;
                request.Data        = feed.Data;
            }

            var ua = string.IsNullOrEmpty(feed.UA) ? NodeVisitor.Setter.GetRandomSettingUA() : feed.UA;

            if (!string.IsNullOrEmpty(ua))
            {
                request.Headers.Add(new WebHeader("User-Agent", ua));
            }

            return(new FeedRequest
            {
                Request = request,
                Setting = new Core.Expression.FeedSetting
                {
                    Id = feed.Id.ToString(),
                    Delay = feed.Delay
                },
                Expression = feed.RuiJiExpression
            });
        }