Пример #1
0
        public async Task<List<SubLepra>> GetUnderground(int? page = null)
        {
            if (_cookieContainer == null)
                FillCookies();

            var handler = new HttpClientHandler { CookieContainer = _cookieContainer };
            var client = new HttpClient(handler);

            var htmlData = await client.GetStringAsync("http://leprosorium.ru/underground/subscribers/" + page.GetValueOrDefault(1));

            htmlData = Regex.Replace(htmlData, "\n+", "");
            htmlData = Regex.Replace(htmlData, "\r+", "");
            htmlData = Regex.Replace(htmlData, "\t+", "");

            var subRegex = "<strong class=\"jj_logo\"><a href=\"(.+?)\"><img src=\"(.+?)\" alt=\"(.*?)\" />.+?<a href=\".*?/users/.+?\">(.+?)</a>";

            var underground = new List<SubLepra>();
            var matches = Regex.Matches(htmlData, subRegex);
            foreach (Match match in matches)
            {
                var subLepra = new SubLepra();
                subLepra.Name = match.Groups[3].Success ? match.Groups[3].Value : match.Groups[1].Value;
                subLepra.Creator = match.Groups[4].Value;
                subLepra.Link = match.Groups[1].Value;
                subLepra.Logo = match.Groups[2].Value;

                underground.Add(subLepra);
            }

            return underground;
        }
Пример #2
0
        private void ProcessMain(string htmlData)
        {
            htmlData = Regex.Replace(htmlData, "\n+", "");
            htmlData = Regex.Replace(htmlData, "\r+", "");
            htmlData = Regex.Replace(htmlData, "\t+", "");

            _postVoteWTF = Regex.Match(htmlData, "wtf_vote = '(.+?)'").Groups[1].Value;
            _myStuffWTF = Regex.Match(htmlData, "mythingsHandler.wtf = '(.+?)'").Groups[1].Value;
            _chatWtf = Regex.Match(htmlData, "chatHandler.wtf = '(.+?)'").Groups[1].Value;
            _userName = Regex.Match(htmlData, "<div id=\"greetings\" class=\"columns_wrapper\">.+?<a href=\".+?\">(.+?)</a>").Groups[1].Value;
            _logoutWTF = Regex.Match(htmlData, "name=\"wtf\" value=\"(.+?)\"").Groups[1].Value;

            // sub lepra regex
            var subReg =
                "<div class=\"sub\"><strong class=\"logo\"><a href=\"(.+?)\" title=\"(.*?)\"><img src=\"(.+?)\" alt=\".+?\" />.+?<div class=\"creator\">.+?<a href=\".*?/users/.+?\">(.+?)</a>";

            var subLepraMatches = Regex.Matches(htmlData, subReg);
            _subLepras = new List<SubLepra>();

            foreach (Match match in subLepraMatches)
            {
                var subLepra = new SubLepra();
                subLepra.Name = match.Groups[2].Value;
                subLepra.Creator = match.Groups[4].Value;
                subLepra.Link = match.Groups[1].Value;
                subLepra.Logo = match.Groups[3].Value;

                _subLepras.Add(subLepra);
            }
        }