Example #1
0
        /// <summary>
        /// Находим самую новую запись в топике        
        /// </summary>
        /// <param name="topic">Топик</param>
        private void SortTopic(UserInfo topic, string userId)
        {
            Topic ui = null;
            // "http://yumor.diary.ru/p202517189.htm?from=last&discuss"

            foreach (var item in topic.Topics)
            {
                var start = item.Url.IndexOf(".diary.ru/p");
                var end = item.Url.IndexOf(".htm");
                var messageId = item.Url.Substring(start, end - start);
                messageId = messageId.Replace(".diary.ru/p", "");

                if (ui == null || ui.Date < item.Date)
                {
                    ui = item;
                    ui.MessageId = messageId;
                    ui.UserId = userId;
                }
            }

            var t = this.GetTopic(topic.NickName, topic.MessageID);

            topic.BanReason = t.Reason.ToString();
            System.Diagnostics.Trace.WriteLine("bar: " + topic.BanReason);
            topic.BanDate = t.BanDate;
            topic.BanUrl = ui.Url;
            topic.MessageID = ui.MessageId;
        }
Example #2
0
        private UserInfo GetTopic(string userName, string topicNumber)
        {
            var info = new UserInfo
            {
                NickName = userName,
                BanDate = DateTime.Now,
                BanUrl = string.Empty,
                Reason = BanReason.Open
            };
            // TODO: add post parse

            var address = string.Format("http://www.diary.ru/discussion/?open[]={0}&js", topicNumber);
            var message = _cook.DownloadString(address);

            message = message.Split(new string[] { "').innerHTML = '", "';", "try{if (sender && sender_innerHTML) sender.innerHTML = sender_innerHTML;}catch(e){}" }, StringSplitOptions.None)[1];
            foreach (var str3 in message.Split(new string[] { "<div class=\\\"clear\\\"></div>" }, StringSplitOptions.RemoveEmptyEntries))
            {
                var top = GetTopicInfo(str3);
                info.Topics.Add(top);
                var lr = ListDiscussion("[shortname]", userName, top.MessageId);
                info.BanReason = "";
            }
            return info;
        }