예제 #1
0
        public static void UpdateJavBusCategory(CookieContainer cc)
        {
            Dictionary <string, string> ret = new Dictionary <string, string>();
            List <string> busCategory       = new List <string>();
            var           url = "https://www.javbus.com/genre";

            var           mapping    = JavBusDownloadHelper.GetJavCategoryMapping(MappingFile);
            List <string> javLibrary = GetJavLibraryCategory();

            var content = HtmlManager.GetHtmlContentViaUrl(url, "utf-8", false, cc);

            if (content.Success)
            {
                HtmlDocument htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(content.Content);

                string xpath = "//a[@class='col-lg-2 col-md-2 col-sm-3 col-xs-6 text-center']";

                HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(xpath);

                foreach (var node in nodes)
                {
                    busCategory.Add(FileUtility.GetJianTiStr(node.InnerText.Trim()));
                }
            }

            var copyBus = string.Join("\r\n", busCategory);
            var copyLib = string.Join("\r\n", javLibrary);

            for (int i = 0; i < busCategory.Count; i++)
            {
                if (javLibrary.Contains(busCategory[i]))
                {
                    if (!ret.ContainsKey(busCategory[i]))
                    {
                        ret.Add(busCategory[i], javLibrary.FirstOrDefault(x => x == busCategory[i]));
                    }
                }
                else
                {
                    if (mapping.ContainsKey(busCategory[i]))
                    {
                        ret.Add(busCategory[i], mapping[busCategory[i]]);
                    }
                }
            }

            if (ret.Count > 0)
            {
                JavDataBaseManager.DeleteJavBusCategory();

                foreach (var map in ret)
                {
                    JavDataBaseManager.InsertJavBusCategory(map.Key, map.Value);
                }
            }
        }