コード例 #1
0
 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;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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>作&nbsp;&nbsp;&nbsp;&nbsp;者:(.*?)</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>作&nbsp;&nbsp;&nbsp;&nbsp;者:(.*?)");
                    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>&nbsp;&nbsp;&nbsp;&nbsp;(.*?)</p>",
                                                           coverRegex: "<div id=\"fmimg\">.*?<img.*?src=\"(.*?)\".*?>",
                                                           authorRegex: "</h1>&nbsp;&nbsp;&nbsp;&nbsp;(.*?)/著</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>作者:(.*?)&nbsp;&nbsp;&nbsp;</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>作&nbsp;&nbsp;&nbsp;&nbsp;者:(.*?)</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>作&nbsp;&nbsp;&nbsp;&nbsp;者:(.*?)</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>作者:(.*?)&nbsp;&nbsp;&nbsp;</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);
        }
コード例 #5
0
 public Algorithm(List <Rule> Rules, AnalisysType Type)
 {
     this.Rules = Rules;
     this.Type  = Type;
 }