/// <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; }
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; }