public SolverParams(SPNetWay Way, ISPNet Net, AnalisysType Type, int MaxActiveBlocksOnLayer) { this.Net = Net; this.Type = Type; this.Way = Way; this.P = new Prevalence(0, 0, Net.GetSettings().SBoxSize); this.MaxActiveBlocksOnLayer = MaxActiveBlocksOnLayer; this.BIndex = -1; this.lastNotEmptyLayerIndex = -1; }
public BlockStateExtrParams(List <bool> Inputs, List <bool> Outputs, Prevalence MIN, Prevalence CurrentPrevalence, AnalisysType Type, bool CheckPrevalence = true) { if (Inputs == null) { Inputs = new List <bool>(); } this.Inputs = Inputs; if (Outputs == null) { Outputs = new List <bool>(); } this.Outputs = Outputs; this.CheckPrevalence = CheckPrevalence; this.CurrentPrevalence = CurrentPrevalence; this.MIN = MIN; this.Type = Type; }
public static AnalisysParams GetAnalisysParams(AnalisysType Type) { var ret = new AnalisysParams(); ret.TaskFinishedFunc = output.TaskFinished; ret.AddSolution = output.MyAddSolution; ret.MaxThreads = 0; while (!((ret.MaxThreads > 0) && (ret.MaxThreads < 32))) { Console.WriteLine("Enter threads count: "); ret.MaxThreads = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); } ret.Alg = new Algorithm(); ret.Alg.Type = Type; ret.Alg.Rules = new List <Rule>(); bool exit = false; while (!exit) { Console.WriteLine("1 - Add Rule\n" + "2 - Print Rules\n" + "3 - Delete Rule\n" + "4 - Finish\n"); var A = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); switch (A) { case 1: { ret.Alg.Rules.Add(GetRule()); break; } case 2: { for (int i = 0; i < ret.Alg.Rules.Count; i++) { Console.WriteLine("Rule #{0}\r\n" + ret.Alg.Rules[i], i); } break; } case 3: { int ind = -1; while (!(ind < ret.Alg.Rules.Count && ind >= 0)) { Console.WriteLine("Enter Rule index: "); ind = Convert.ToInt32(Console.ReadLine()); } ret.Alg.Rules.RemoveAt(ind); break; } case 4: { exit = true; break; } } } return(ret); }
public static object AnalisysHtml(string url, string html, AnalisysType type, string bookName = null) { var uri = new Uri(url); var host = uri.Host; switch (host) { // 少年文学 case SourceWebValue.Snwx: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"BookText\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<div id=\"list\">.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\".*?>(.*?)</a></dd>", introRegex: "<div class=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<i>作者:(.*?)</i>"); return(value); } break; // 爱上中文 case SourceWebValue.Aszw: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"contents\".*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, "", html, catalogsRegex: "<head>.*?</html>", catalogRegex: "<td class=\"L\".*?href=\"(.*?)\".*?>(.*?)</a></td>", introRegex: "<div class=\"js\">(.*?)<p><b>", coverRegex: "<div class=\"pic\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<i>作者:(.*?)</i>"); return(value); } break; // 七度 case SourceWebValue.Qdsw: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"BookText\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<div id=\"list\">.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\".*?>(.*?)</a></dd>", introRegex: "<div class=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<i>作者:(.*?)</i>"); return(value); } break; // 云来阁 case SourceWebValue.Ylg: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"content\">.*?<div class=\"bottomlink tc\">"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, "", html, catalogsRegex: "<table.*?</table>", catalogRegex: "<a href=\"(.*?)\">(.*?)</a>", introRegex: "<meta property=\"og:description\" content=\"(.*?)\"/>", coverRegex: "<meta property=\"og:image\" content=\"(.*?)\"/>", authorRegex: "<meta property=\"og:novel:author\" content=\"(.*?)\"/>"); return(value); } break; // 古古 55xs case SourceWebValue.Ggxs: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<dd id=\"contents\".*?</dd>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<table.*?class=\"list\">.*?</table>", catalogRegex: "<td><a href=\"(.*?)\".*?>(.*?)</a></td>", introRegex: "<div class=\"msgarea\">(.*?)</p>", coverRegex: "<div class=\"img1\"><img src=\"(.*?)\".*?</div>", authorRegex: "<a href=\"/modules/article/authorarticle.php\\?author=.*?>(.*?)</a>"); return(value); } break; // 风云 case SourceWebValue.Fyxs: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<p id=\"?content\"?.*?</p>"); value = value.Replace("", ""); value = Regex.Replace(value, "【无弹窗小说网.*?www.baoliny.com】", ""); value = Regex.Replace(value, "【风云小说阅读网.*?www.baoliny.com】", ""); value = Regex.Replace(value, "【最新章节阅读.*?www.baoliny.com】", ""); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url) + "index.html"; return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon("", "", html, catalogsRegex: "<div class=\"readerListShow\".*?</div>", catalogRegex: "<td.*?href=\"(.*?)\".*?>(.*?)</a></td>", introRegex: "<p align=\"center\">.*?<p>(.*?)</p>", coverRegex: "", authorRegex: "②作者(.*?)所写"); return(value); } break; // 第九中文 case SourceWebValue.Dijiuzww: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"?content\"?.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "正文</dt>.*?</div>", catalogRegex: "<dd><a href=\"/(.*?)\">(.*?)</a></dd>", introRegex: "<div id=\"intro\">.*?</p>", coverRegex: "<div id=\"fmimg\"><script.*?src=\"/(.*?)\">", authorRegex: "<p>作 者:(.*?)</p>"); return(value); } break; // 大海中文 case SourceWebValue.Dhzw: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"BookText\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<div id=\"list\">.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\".*?>(.*?)</a></dd>", introRegex: "<div class=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<i>作者:(.*?)</i>"); return(value); } break; // 手牵手 case SourceWebValue.Sqsxs: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"content\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<div id=\"list\">.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\".*?>(.*?)</a></a></dd>", introRegex: "<div id=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<meta property=\"og:novel:author\" content=\"(.*?)\"/>"); return(value); } break; // 风华居 case SourceWebValue.Fenghuaju: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"content\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(baseUrl, baseUrl, html, catalogsRegex: "正文</dt>.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\">(.*?)</a></dd>", introRegex: "<div id=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\"><img.*?src=\"(.*?)\".*?>", authorRegex: "<p>作 者:(.*?)"); return(value); } break; // 木鱼哥 case SourceWebValue.Myg: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<p class=\"vote\">.*?</div>"); value = value.Replace(",请用搜索引擎各种任你观看", "") .Replace("【一秒钟记住本站:muyuge.com 木鱼哥】", "") .Replace("【木鱼哥 温馨提示:如果您喜欢本书,请按 回车键 回到目录页,并使用 分享按钮 分享到微博和空间,举手之劳,分享越多更新更给力!】", ""); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon("", "", html, catalogsRegex: "<div id=\"xslist\">.*?</div>", catalogRegex: "<li><a href=\"(.*?)\".*?>(.*?)</a></li>", introRegex: "<p> (.*?)</p>", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "</h1> (.*?)/著</div>"); return(value); } break; // 乐文 case SourceWebValue.Lww: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"txtright\">.*?<span id=\"endtips\">"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetLwCatalogPageUrl(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(baseUrl, baseUrl, html, catalogsRegex: "<h2 class=\"bookTitle\">.*?<div id=\"uyan_frame\">", catalogRegex: "<a href=\"(.*?)\">(.*?)</a>", introRegex: "<div class=\"reBook borderF\">(.*?)</div>", coverRegex: "<div style=\"width:600px; padding:5px\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<p>作者:(.*?) </p>"); if (value != null) { var temp = (Tuple <List <BookCatalog>, string, string, string>)value; var tempUri = new Uri(url); var id = tempUri.Query.Replace("?aid=", ""); string seg1 = ""; if (id.Length >= 5) { seg1 = id.Substring(0, 2); } else if (id.Length == 4) { seg1 = id.Substring(0, 1); } else if (id.Length == 3) { seg1 = "0"; } //http://www.lwtxt.net/files/article/image/1/1210/1210s.jpg var cover = $"http://www.lwtxt.net/files/article/image/{seg1}/{id}/{id}s.jpg"; value = new Tuple <List <BookCatalog>, string, string, string>(temp.Item1, temp.Item2, cover, temp.Item4); } return(value); } break; // 卓雅居 case SourceWebValue.Zyj: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"?content\"?.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetZyjCatalogPageUrl(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "正文</dt>.*?</div>", catalogRegex: "<dd><a href=\"/(.*?)\">(.*?)</a></dd>", introRegex: "<div id=\"intro\">.*?</p>", coverRegex: "<div id=\"fmimg\"><script.*?src=\"/(.*?)\">", authorRegex: "<p>作 者:(.*?)</p>"); return(value); } break; // 81中文 case SourceWebValue.Xs81: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"?content\"?.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<div id=\"list\">.*?</div>", catalogRegex: "<dd><a href=\"(.*?)\">(.*?)</a></dd>", introRegex: "<div id=\"intro\">(.*?)</div>", coverRegex: "<div id=\"fmimg\"><img.*?src=\"(.*?)\".*?/>", authorRegex: "<p>作 者:(.*?)</p>"); return(value); } break; // 大书包 case SourceWebValue.Dsb: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div class=\"hr101\">.*?<span id=\"endtips\">"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetDsbCatalogPageUrl(url); return(value); } if (type == AnalisysType.CatalogPageData) { //http://www.dashubao.cc/files/article/image/21/21467/21467s.jpg var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(baseUrl, "", html, catalogsRegex: "<h2 class=\"bookTitle\">.*?<div id=\"uyan_frame\">", catalogRegex: "<a href=\"(.*?)\">(.*?)</a>", introRegex: "<div class=\"reBook borderF\">(.*?)</div>", coverRegex: "<div style=\"width:600px; padding:5px\">.*?<img.*?src=\"(.*?)\".*?>", authorRegex: "<p>作者:(.*?) </p>"); if (value != null) { var temp = (Tuple <List <BookCatalog>, string, string, string>)value; var tempUri = new Uri(url); var id = tempUri.Query.Replace("?aid=", ""); string seg1 = ""; if (id.Length >= 5) { seg1 = id.Substring(0, 2); } else if (id.Length == 4) { seg1 = id.Substring(0, 1); } else if (id.Length == 3) { seg1 = "0"; } var cover = $"http://www.dashubao.cc/files/article/image/{seg1}/{id}/{id}s.jpg"; value = new Tuple <List <BookCatalog>, string, string, string>(temp.Item1, temp.Item2, cover, temp.Item4); } return(value); } break; // 漂流地 case SourceWebValue.Pld: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"BookText\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "https://" + host; var value = GetCatalogPageDataCommon(baseUrl, "", html, catalogsRegex: "<dl class=\"chapterlist\">.*?</dl>", catalogRegex: "<dd><a href=\"(.*?)\">(.*?)</a></dd>", introRegex: "<p class=\"book-intro\">(.*?)</p>", coverRegex: "<div class=\"book-img\">.*?<img.*?src=\"(.*?)\".*?/>", authorRegex: "<p>作.*?者:(.*?)</p>"); return(value); } break; //齐鲁文学 case SourceWebValue.Qlwx: if (type == AnalisysType.Content) { var value = GetContentFromHtmlCommon(html, "<div id=\"content\">.*?</div>"); return(value); } if (type == AnalisysType.CatalogPageUrl) { var value = GetCatalogPageUrlCommon(url); return(value); } if (type == AnalisysType.CatalogPageData) { var baseUrl = "http://" + host; var value = GetCatalogPageDataCommon(url, baseUrl, html, catalogsRegex: "<dl>.*?</dl>", catalogRegex: "<dd><a href=\"(.*?)\">(.*?)</a></dd>", introRegex: "<div id=\"intro\">(.*?)</div", coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?/>", authorRegex: "<p>作.*?者:(.*?)</p>"); return(value); } break; default: return(null); } return(null); }
public Algorithm(List <Rule> Rules, AnalisysType Type) { this.Rules = Rules; this.Type = Type; }