コード例 #1
0
    public void RecordStatsWotLK()
    {
        if (ItemType != "Armor" && ItemType != "Weapon")
        {
            return;
        }

        string stats = Lua.LuaDoString <string>($@"
                local itemstats=GetItemStats(""{ItemLink.Replace("\"", "\\\"")}"")
                local stats = """"
                for stat, value in pairs(itemstats) do
                    stats = stats.._G[stat]..""§""..value..""$""
                end
                return stats");

        //Logger.Log("stats -> " + stats);
        if (stats.Length < 1)
        {
            return;
        }

        List <string> statsPairs = stats.Split('$').ToList();

        foreach (string pair in statsPairs)
        {
            if (pair.Length > 0)
            {
                string[] statsPair = pair.Split('§');
                string   statName  = statsPair[0];
                float    statValue = float.Parse(statsPair[1], CultureInfo.InvariantCulture);
                if (!ItemStats.ContainsKey(statName))
                {
                    ItemStats.Add(statName, statValue);
                }
            }
        }
        RecordWeightScore();
    }
コード例 #2
0
        public void ProcessUrlEx(int Level, String DestFolder, String url, Label Status, TextBox Results) // Recursive processing of a URL
        {
            String ItemName, ItemImage, ItemLink;
            int    ItemIndex = 0;

            HtmlAgilityPack.HtmlNodeCollection ItemNodes;
            String SaveFile;

            if (fWasCancelled)
            {
                return;
            }

            using (WebClient Client = new WebClient()) // IDisposable
            {
                url = URLAppend(url, "page=all");
                String Page = Client.DownloadString(url);
                HtmlAgilityPack.HtmlDocument Doc = new HtmlAgilityPack.HtmlDocument();
                Doc.LoadHtml(Page);
                ItemNodes = Doc.DocumentNode.SelectNodes("//td[@class='thumbnail']");
                if (ItemNodes == null)
                {
                    Results.AppendText(">> No images or folders\r\n");
                }
                else
                {
                    fTotalItems += ItemNodes.Count;
                    File.WriteAllText(DestFolder + "Description.txt", ExtractUserDesc(Page));   // Save the Description text to txt file

                    // Iterate items on the page (assume < 1000 items)
                    foreach (HtmlNode Node in ItemNodes)
                    {
                        ItemIndex++;
                        ItemName  = FilenameSafe(ItemIndex.ToString("D3") + "-" + ExtractString(Node.InnerHtml, "alt="));   // force 3-digit prefix to maintian order
                        ItemImage = ExtractString(Node.InnerHtml, "src=");
                        ItemLink  = ExtractString(Node.InnerHtml, "href=");

                        if (ItemLink.IndexOf(SourceURL + "/image/") > -1)   // Is the item a link to an image?  If so, download and save data
                        {
                            //Load the Image page
                            SaveFile = DestFolder + ItemIndex.ToString("D3") + ".jpg";
                            HtmlAgilityPack.HtmlDocument ImageDoc = new HtmlAgilityPack.HtmlDocument();
                            if (!File.Exists(SaveFile))
                            {
                                ItemLink = ItemLink + "/original&exif=Y";
                                Page     = Client.DownloadString(ItemLink);
                                ImageDoc.LoadHtml(Page);
                                HtmlNode jpgnode = ImageDoc.DocumentNode.SelectSingleNode("//div[@id='imgdiv']");
                                if (jpgnode != null)
                                {
                                    String jpgLink = ExtractString(jpgnode.InnerHtml, "src=");
                                    Client.DownloadFile(jpgLink, SaveFile);
                                }
                            }

                            // Iterate the Title and EXIF data if available, and save to txt file
                            SaveFile = DestFolder + ItemIndex.ToString("D3") + ".txt";
                            if (!File.Exists(SaveFile))
                            {
                                String   EXIF      = "";
                                HtmlNode TitleNode = ImageDoc.DocumentNode.SelectSingleNode("//span[@class='title']");
                                if (TitleNode != null)
                                {
                                    EXIF = "Title=" + TitleNode.InnerText + "\n";
                                }
                                HtmlNodeCollection ExifNodes = ImageDoc.DocumentNode.SelectNodes("//td[@class='lid']");
                                Boolean            first     = true;
                                if (ExifNodes != null)
                                {
                                    foreach (HtmlNode ExifNode in ExifNodes)
                                    {
                                        if (first)
                                        {
                                            EXIF = EXIF + ExifNode.InnerText;
                                        }
                                        else
                                        {
                                            EXIF = EXIF + "=" + ExifNode.InnerText + "\n";
                                        }
                                        first = !first;
                                    }
                                }
                                File.WriteAllText(SaveFile, EXIF);
                            }
                        }
                        else // Is the item a link to a gallery or image page?  If so, explore it
                        {
                            Results.AppendText("Processing folder " + ItemLink.Replace(SourceURL, "") + "\r\n");
                            ItemLink = URLAppend(ItemLink, "page=all");
                            if (!Directory.Exists(DestFolder + ItemName))   // Create folder and store thumbnail
                            {
                                Directory.CreateDirectory(DestFolder + ItemName);
                            }
                            Client.DownloadFile(ItemImage, DestFolder + ItemName + "/Thumbnail.jpg");
                            fProcessedFolders++;
                            ProcessUrlEx(Level + 1, DestFolder + ItemName + '\\', ItemLink, Status, Results);
                        }

                        fProcessedItems++;
                        if (!SetStatus(Status, "Processed " + fProcessedItems.ToString() + " of " + fTotalItems.ToString() + " discovered items"))
                        {
                            break;
                        }
                    }
                }
            }
        }
コード例 #3
0
        public void CreateRss(DataSet ds)
        {
            XmlDocument domDoc = new XmlDocument();

            //XmlDeclaration nodeDeclar = domDoc.CreateXmlDeclaration("1.0 ", System.Text.Encoding.UTF8.BodyName, "yes ");
            XmlDeclaration nodeDeclar = domDoc.CreateXmlDeclaration("1.0", "UTF-8", string.Empty);

            domDoc.AppendChild(nodeDeclar);

            //如果rss有样式表文件的话,加上这两句

            //XmlProcessingInstruction nodeStylesheet = domDoc.CreateProcessingInstruction("xml-stylesheet", @"type='text/css'   href='rss.css' ");

            //domDoc.AppendChild(nodeStylesheet);

            XmlElement root = domDoc.CreateElement("rss");

            root.SetAttribute("version", RssVersion);     //添加属性结点

            domDoc.AppendChild(root);

            XmlElement chnode = domDoc.CreateElement("channel");

            root.AppendChild(chnode);

            XmlElement element = domDoc.CreateElement("title");

            XmlNode textNode = domDoc.CreateTextNode(RssTitle);         //文本结点

            element.AppendChild(textNode);

            chnode.AppendChild(element);

            element = domDoc.CreateElement("link");

            textNode = domDoc.CreateTextNode(RssLink);

            element.AppendChild(textNode);

            chnode.AppendChild(element);

            element = domDoc.CreateElement("description");   //引用结点

            XmlNode cDataNode = domDoc.CreateTextNode(RssDescription);

            element.AppendChild(cDataNode);

            chnode.AppendChild(element);

            DataTable dt = ds.Tables[0];           //访问数据库,获取要在rss中显示的记录

            foreach (DataRow dr in dt.Rows)
            {
                //element = domDoc.CreateElement("item");

                ////...

                ////创建内容结点,常见的如title,description,link,pubDate,创建方法同上

                ////...

                XmlElement item = domDoc.CreateElement("item");

                chnode.AppendChild(item);

                ////chnode.AppendChild(element);

                XmlElement element1 = domDoc.CreateElement("title");

                XmlNode textNode1 = domDoc.CreateTextNode(dr[ItemTitle].ToString());         //文本结点

                element1.AppendChild(textNode1);

                item.AppendChild(element1);

                element1 = domDoc.CreateElement("link");

                textNode1 = domDoc.CreateTextNode(ItemLink.Replace("[ItemID]", dr[ItemID].ToString()));

                element1.AppendChild(textNode1);

                item.AppendChild(element1);

                element1 = domDoc.CreateElement("description");   //引用结点

                textNode1 = domDoc.CreateTextNode(dr[ItemDescription].ToString());

                element1.AppendChild(textNode1);

                item.AppendChild(element1);

                element1 = domDoc.CreateElement("pubDate");   //日期

                textNode1 = domDoc.CreateTextNode(DateTime.Parse(dr[ItemDate].ToString()).ToString("yyyy-MM-dd"));

                element1.AppendChild(textNode1);

                item.AppendChild(element1);
            }

            //输出

            //XmlTextWriter objTextWrite = new XmlTextWriter(this.Response.OutputStream, System.Text.Encoding.UTF8);
            //string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
            domDoc.Save(System.Web.HttpContext.Current.Server.MapPath("~/Feeds/" + RssFileName));

            //objTextWrite.Flush();
            //objTextWrite.Close();
        }