package com.roboo.like.google.utils;
import java.io.IOException;
import java.util.LinkedList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.roboo.like.google.GoogleApplication;
import com.roboo.like.google.models.CommentItem;
public class CommentUtils
{
private static final int TIME_OUT = 20000;
private static final String SPLIT_REPLAY = "回复于";
private static final String FOUR_BLANK = " ";
private static final String BR = "<br>";
// ===========================================================================================
// ===========================================================================================
// "http://www.ithome.com/ithome/GetAjaxData.aspx?newsid=78507&type=commentpage&page=1";
// ===========================================================================================
// ===========================================================================================
public static LinkedList<CommentItem> getCommentList(String commentUrl) throws IOException
{
LinkedList<CommentItem> data = null;
Document document = Jsoup.connect(commentUrl).timeout(TIME_OUT).get();
if (null != document)
{
Element bodyElement = document.body();
Elements elements = bodyElement.getElementsByTag("li");
if (null != elements && elements.size() > 0)
{
data = new LinkedList<CommentItem>();
for (Element element : elements)
{
// System.out.println("element = " + element);
Elements divElements = element.getElementsByTag("div");
Element replyElement = null;
if (element.getElementsByClass("reply") != null && element.getElementsByClass("reply").size() > 0)
{
replyElement = element.getElementsByClass("reply").get(0);
}
Element infoElement = null;
if (divElements != null && divElements.size() > 0)
{
infoElement = divElements.get(0);
}
if (infoElement == null)
{
infoElement = element.getElementsByClass("re_info") == null ? null : element.getElementsByClass("re_info").size() > 0 ? element.getElementsByClass("re_info").get(0) : null;
}
if (replyElement != null)
{
LinkedList<CommentItem> replyItems = new LinkedList<CommentItem>();
}
String floor = "顶楼";
String nick = "思密达";
Elements phoneTypeElements = null;
String addressAndrTime = "";
if (infoElement != null)
{
floor = infoElement.getElementsByClass("p_floor").get(0).text();
nick = infoElement.getElementsByClass("nick").get(0).text();
phoneTypeElements = infoElement.getElementsByTag("span");
addressAndrTime = infoElement.ownText();
}
String phoneType = "";
String address = "";
String replyTime = "";
String agrssCount = "支持(0)";
String disAgrssCount = "反对(0)";
String content = "暂无评论";
if (phoneTypeElements != null)
{
phoneType = phoneTypeElements.text();
}
if (addressAndrTime.contains(SPLIT_REPLAY))
{
address = addressAndrTime.split(SPLIT_REPLAY)[0];
replyTime = addressAndrTime.split(SPLIT_REPLAY)[1];
}
Element commentElement = null;
if (divElements != null && divElements.size() > 1)
{
commentElement = divElements.get(1);
}
if (commentElement == null)
{
commentElement = element.getElementsByClass("comm") == null ? null : element.getElementsByClass("comm").size() > 0?element.getElementsByClass("comm").get(0):null;
}
if (commentElement == null)
{
commentElement = element.getElementsByClass("re_comm") == null ? null : element.getElementsByClass("re_comm").size() > 0? element.getElementsByClass("re_comm").get(0):null;
}
if (null != commentElement && commentElement.getElementsByTag("p") != null && commentElement.getElementsByTag("p").size() > 0)
{
content = commentElement.getElementsByTag("p").get(0).text();
}
if (content.contains(BR))
{
content.replaceAll(BR, "\r\n");
}
content = FOUR_BLANK + content;
if (null != commentElement && commentElement.getElementsByClass("comm_reply") != null && commentElement.getElementsByClass("comm_reply").size() > 2)
{
agrssCount = commentElement.getElementsByClass("comm_reply").get(0).text();
disAgrssCount = commentElement.getElementsByClass("comm_reply").get(2).text();
}
CommentItem item = new CommentItem();
item.floor = floor;
item.address = address;
item.agreeCount = agrssCount;
item.disAgressCount = disAgrssCount;
item.nick = nick;
item.phoneType = phoneType;
item.replyContent = content;
item.replyTime = replyTime;
data.add(item);
}
}
}
return data;
}
}