Esempio n. 1
0
        public static string CutBetween(string source, string begin, string end)
        {
            string result = UrlHelpers.CutHead(source, begin);

            result = UrlHelpers.CutTail(result, end);
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// The thread method of speech
        /// </summary>
        /// <param name="speechList">The reference speech list</param>
        /// <param name="cookieContainer">The user connection cookie container</param>
        /// <param name="number">The speech page number</param>
        /// <param name="finish">The reference finish count</param>
        /// <param name="current">The reference current working speech count</param>
        private static void MethodSpeech(ref List <Speech> speechList, string cookieContainer, int number, ref int finish, ref int current)
        {
            string text = string.Empty;

            if (UrlHelpers.GetHtml("http://civitas.soobb.com/Forums/Speeches/?SpeechType=1&Page=" + number, ref text, cookieContainer) == 1)
            {
                text = UrlHelpers.CutBetween(text, "<div class=\"Speeches\"", "<h4>系统消息");
                while (text.Contains("<div class=\"Speech\""))
                {
                    text = UrlHelpers.CutHead(text, "<div class=\"Speech\"");
                    int    id      = Convert.ToInt32(UrlHelpers.CutBetween(text, "speechid=\"", "\""));
                    string name    = UrlHelpers.CutHead(UrlHelpers.CutBetween(text, "<p class=\"Name\"><a href", "</a>:"), "\">");
                    string t       = UrlHelpers.CutTail(UrlHelpers.CutHead(text, ":</p>\r\n\t\t\t<p>"), "</p>");
                    int    like    = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">欢呼</a><span type=\"1\" class=\"Number\">(", ")</span>"));
                    int    watch   = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">关注</a><span type=\"3\" class=\"Number\">(", ")</span>"));
                    int    dislike = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">倒彩</a><span type=\"2\" class=\"Number\">(", ")</span>"));
                    string time    = UrlHelpers.CutBetween(text, "演讲,第", "</p>");
                    int    day     = -1;
                    int    hour    = 0;
                    int    min     = 0;
                    try
                    {
                        day  = Convert.ToInt32(UrlHelpers.CutTail(time, "天"));
                        hour = Convert.ToInt32(UrlHelpers.CutBetween(time, "天 ", ":"));
                        min  = Convert.ToInt32(UrlHelpers.CutHead(time, ":"));
                    }
                    catch
                    {
                        Console.WriteLine("\n时间有个错误,可能是BOSS发言,不带天数和时间");
                    }

                    speechList.Add(new Speech(id, name, t, like, watch, dislike, new CivitasTime(day, hour, min)));
                }
            }

            finish++;
            current--;
        }
Esempio n. 3
0
        public void SeeNeighbor(User user)
        {
            if (user.IsLogin)
            {
                new Thread(delegate()
                {
                    if (this.Id < 0)
                    {
                        return;
                    }

                    string text = string.Empty;
                    if (UrlHelpers.GetHtml(
                            "http://civitas.soobb.com/Districts/" + this.Id,
                            ref text,
                            user.CookieContainer) == 1)
                    {
                        this.health = Convert.ToDouble(UrlHelpers.CutHead(
                                                           UrlHelpers.CutBetween(text, "<div class=\"Subject\">卫生</div>", "%</div>"),
                                                           "ive\">"));
                        this.prosperity = Convert.ToDouble(UrlHelpers.CutHead(
                                                               UrlHelpers.CutBetween(text, "<div class=\"Subject\">繁荣</div>", "%</div>"),
                                                               "ive\">"));
                        this.industry = Convert.ToDouble(UrlHelpers.CutHead(
                                                             UrlHelpers.CutBetween(text, "<div class=\"Subject\">产业</div>", "%</div>"),
                                                             "ive\">"));
                    }

                    text = string.Empty;
                    if (UrlHelpers.GetHtml(
                            "http://civitas.soobb.com/Districts/" + this.Id + "/Estates/",
                            ref text,
                            user.CookieContainer) == 1)
                    {
                        string strCount = UrlHelpers.CutBetween(text, "<span class=\"Count\">(共 ", "条)</span>");
                        int count       = Convert.ToInt32(strCount);
                        int pageCount   = (count / 20) + 1;
                        for (int i = 1, j = 0; i <= pageCount; i++)
                        {
                            if (UrlHelpers.GetHtml(
                                    "http://civitas.soobb.com/Districts/" + this.Id + "/Estates/?Action=Search&Page=" + i,
                                    ref text,
                                    user.CookieContainer) == 1)
                            {
                                string temp = UrlHelpers.CutHead(text, "<div class=\"Estate StatisticsRow\">");
                                for (int k = 0; k < 20 & j < count; k++, j++)
                                {
                                    string tempt1     = UrlHelpers.CutTail(temp, "<div class=\"Text\">");
                                    string name       = UrlHelpers.CutBetween(UrlHelpers.CutHead(tempt1, "<h5>"), "Details/\">", "</a>");
                                    string typestr    = UrlHelpers.CutBetween(tempt1, "</a>的", "</div>");
                                    string owner      = UrlHelpers.CutHead(UrlHelpers.CutBetween(tempt1, " entityid=\"", "</a>的" + typestr), ">");
                                    string ownerPath  = UrlHelpers.CutBetween(tempt1, "<div><a href=\"", "\" class=\"WithEntityCard\" entityid=\"");
                                    string estatePath = UrlHelpers.CutBetween(tempt1, "<h5><a href=\"", "\">" + name);
                                    double area       = Convert.ToDouble(UrlHelpers.CutBetween(UrlHelpers.CutBetween(tempt1, "<div class=\"Text Text2\">", "占地面积"), "Number\">", "</p>"));
                                    EstateType type   = EstateType.GetEstateType(typestr);
                                    if (null == type)
                                    {
                                        type = new EstateType(typestr);
                                    }

                                    this.Estates.Add(new Estate(name, type, area, estatePath, owner, ownerPath));
                                    temp = UrlHelpers.CutHead(temp, "<div class=\"Estate StatisticsRow\">");
                                }

                                Console.Write("[" + this.Name[0] + "]");
                            }

                            if (j == count)
                            {
                                break;
                            }
                        }
                    }

                    Console.WriteLine("\n窥探【" + this.Name + "】完毕,有种放学别走!");
                    this.ready = true;
                }).Start();
            }
        }