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); }
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 { }); }
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 { }); }
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); }
public object GetRule(int id) { var feed = RuleLiteDB.GetRule(id); return(feed); }
public void UpdateRule(RuleModel rule) { RuleLiteDB.AddOrUpdate(rule); }