Ejemplo n.º 1
0
        public void TestMatchRule()
        {
            TestLock(20);

            var rules = RuleLiteDB.Match("http://www.ruijihg.com/2018/05/24/json-net-%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96%e6%8e%a5%e5%8f%a3%e9%9b%86%e5%90%88/");

            Assert.IsTrue(rules.Count > 0);
        }
Ejemplo n.º 2
0
        public object UrlRule(string url, bool useBlock = false)
        {
            var node = ServerManager.Get(Request.RequestUri.Authority);

            if (node.NodeType == Node.NodeTypeEnum.FEEDPROXY)
            {
                if (useBlock)
                {
                    return(RuleLiteDB.Match(url).Select(m => JsonConvert.DeserializeObject <ExtractBlock>(m.BlockExpression)).ToList());
                }
                else
                {
                    return(RuleLiteDB.Match(url).Select(m => RuiJiExpression.ParserBlock(m.RuiJiExpression)).ToList());
                }
            }

            return(new { });
        }
Ejemplo n.º 3
0
        public object Rules(int offset, int limit)
        {
            var node = ServerManager.Get(Request.RequestUri.Authority);

            if (node.NodeType == Node.NodeTypeEnum.FEEDPROXY)
            {
                var paging = new Paging();
                paging.CurrentPage = (offset / limit) + 1;
                paging.PageSize    = limit;

                return(new
                {
                    rows = RuleLiteDB.GetRuleModels(paging),
                    total = paging.Count
                });
            }

            return(new { });
        }
Ejemplo n.º 4
0
        public void TestCreateRule()
        {
            //RuleLiteDB.Remove(1);

            var rule = new RuleModel();

            rule.Url        = "http://www.ruijihg.com/2018/05/24/json-net-%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96%e6%8e%a5%e5%8f%a3%e9%9b%86%e5%90%88/";
            rule.Domain     = new Uri(rule.Url).GetDomain();
            rule.Expression = "http://www.ruijihg.com/????/??/??/*";

            var block = new ExtractBlock()
            {
                Selectors = new List <ISelector>
                {
                    new CssSelector("#main", CssTypeEnum.InnerHtml)
                },
                Metas = new ExtractMetaCollection()
            };

            block.Metas.AddMeta("time", new List <ISelector> {
                new CssSelector("time", CssTypeEnum.Text)
            });

            block.Metas.AddMeta("author", new List <ISelector> {
                new CssSelector(".author", CssTypeEnum.Text)
            });

            block.Metas.AddMeta("content", new List <ISelector> {
                new CssSelector(".entry-content", CssTypeEnum.InnerHtml)
            });

            rule.BlockExpression = JsonConvert.SerializeObject(block);

            //rule.Id = 1;
            RuleLiteDB.AddOrUpdate(rule);

            Assert.IsTrue(rule.Id > 0);
        }
Ejemplo n.º 5
0
        public object GetRule(int id)
        {
            var feed = RuleLiteDB.GetRule(id);

            return(feed);
        }
Ejemplo n.º 6
0
 public void UpdateRule(RuleModel rule)
 {
     RuleLiteDB.AddOrUpdate(rule);
 }