package com.roboo.like.netease.utils;
import java.io.IOException;
import java.util.LinkedList;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.R.integer;
import com.baidu.location.BDLocation.a;
import com.roboo.like.netease.model.News;
import com.roboo.like.netease.model.NewsContent;
public class NewsUtils
{
private static final String QQ_NEWS_STYLE_CLASS_NAME = "Q-tpWrap";
private static final String QQ_NEWS_CONTENT_ID = "Cnt-Main-Article-QQ";
private static final String IT_HOME_NEWS_CONTENT_ID = "paragraph";
private static final String IT_HOME_STYLE_CLASS_NAME = "cate_list";
public static LinkedList<News> getNewsList(String channelUrl, int pageNo) throws IOException
{
LinkedList<News> data = null;
Document document = Jsoup.connect(channelUrl).get();
if (null != document)
{
Elements elements = document.getElementsByClass(QQ_NEWS_STYLE_CLASS_NAME);
if (null != elements && elements.size() >= 0)
{
data = new LinkedList<News>();
for (int i = 0; i < (elements.size() > 10 ? 10 : elements.size()); i++)
{
Element element = elements.get(i);
String src = element.getElementsByTag("img").get(0).attr("src");
String title = element.getElementsByClass("linkto").get(0).text();
String subTitle = element.getElementsByTag("p").get(0).text();
String url = element.getElementsByClass("linkto").get(0).attr("href");
News news = new News();
news.setUrl(url);
news.setTitle(title);
news.setSubTitle(subTitle);
news.setMd5(MD5Utils.generate(url));
news.setSrc(src);
data.add(news);
}
}
}
return data;
}
public static String getNewsData(String newsUrl) throws IOException
{
String data = null;
Document document = Jsoup.connect(newsUrl).get();
if (null != document)
{
Element element = document.getElementById(QQ_NEWS_CONTENT_ID);
if (null != element)
{
Elements elements = element.getElementsByTag("p");
StringBuffer sb = new StringBuffer();
for (Element e : elements)
{
String pHtml = e.html();
if (null != pHtml)
{
if (pHtml.contains("<img"))
{
Elements imgElements = e.getElementsByTag("img");
if (null != imgElements && imgElements.size() > 0)
{
for (Element ee : imgElements)
{
sb.append(ee.attr("src") + ",");
}
}
}
}
}
if (sb.length() > 0)
{
sb.deleteCharAt(sb.length() - 1);
}
for (Element e : elements)
{
String pHtml = e.html();
if (null != pHtml)
{
if (pHtml.contains("<img"))
{
Elements imgElements = e.getElementsByTag("img");
if (null != imgElements && imgElements.size() > 0)
{
for (int i = 0; i < imgElements.size(); i++)
{
Element ee = imgElements.get(i);
ee.attr("onclick", "window.android.toast(\"" + sb.toString() + "\"" + "," + i + ")");
}
}
}
}
}
data = element.toString();
if (null != data)
{
return new String(data.getBytes(), "UTF-8");
}
}
}
return data;
}
public static NewsContent getNewsContent(String newsUrl) throws IOException
{
NewsContent newsContent = null;
Document document = Jsoup.connect(newsUrl).get();
if (null != document)
{
Element element = document.getElementById(QQ_NEWS_CONTENT_ID);
if (null != element)
{
newsContent = new NewsContent();
System.out.println("element = " + element);
Elements elements = element.getElementsByTag("p");
if (null != elements)
{
LinkedList<String> contentList = new LinkedList<String>();
LinkedList<String> srcList = new LinkedList<String>();
for (Element e : elements)
{
String pHtml = e.html();
if (null != pHtml)
{
if (pHtml.contains("<img"))
{
Elements imgElements = e.getElementsByTag("img");
if (null != imgElements && imgElements.size() > 0)
{
for (Element ee : imgElements)
{
srcList.add(ee.attr("src"));
}
}
}
else
{
contentList.add(pHtml);
}
}
}
newsContent.setSrcList(srcList);
newsContent.setContentList(contentList);
}
}
}
return newsContent;
}
public static LinkedList<News> getITHomeNews(String ithomeurl ,int pageNo) throws IOException
{
LinkedList<News> data = null;
String itHomeUrl = ithomeurl+ pageNo+".html" ;
Document document = Jsoup.connect(itHomeUrl).timeout(20000).get();
if (null != document)
{
Elements es = document.getElementsByClass(IT_HOME_STYLE_CLASS_NAME);
if (null != es && es.size() > 0)
{
Element element = es.get(0);
if (null != element)
{
data = new LinkedList<News>();
Elements ess = element.getElementsByTag("li");
if (null != ess && ess.size() > 0)
{
for (Element ee : ess)
{
Element h2Element = ee.getElementsByTag("h2").get(0);
Element aElement = ee.getElementsByClass("list_thumbnail").get(0);
Element imgElement = aElement.getElementsByTag("img").get(0);
Element pElement = ee.getElementsByTag("p").get(0);
News news = new News();
String url = aElement.attr("href");
String md5 = MD5Utils.generate(url);
String title = h2Element.text();
String subTitle = pElement.text();
String src = imgElement.attr("data-original");
news.setSrc(src);
news.setMd5(md5);
news.setUrl(url);
news.setTitle(title);
news.setSubTitle(subTitle);
data.add(news);
}
}
}
}
}
return data;
}
public static LinkedList<News> getITHomeNews(String baseUrl,int category, int pageNo) throws IOException
{
LinkedList<News> data = null;
String itHomeUrl = baseUrl +category+"_"+ pageNo+".html" ;
Document document = Jsoup.connect(itHomeUrl).timeout(20000).get();
if (null != document)
{
Elements es = document.getElementsByClass(IT_HOME_STYLE_CLASS_NAME);
if (null != es && es.size() > 0)
{
Element element = es.get(0);
if (null != element)
{
data = new LinkedList<News>();
Elements ess = element.getElementsByTag("li");
if (null != ess && ess.size() > 0)
{
for (Element ee : ess)
{
Element h2Element = ee.getElementsByTag("h2").get(0);
Element aElement = ee.getElementsByClass("list_thumbnail").get(0);
Element imgElement = aElement.getElementsByTag("img").get(0);
Element pElement = ee.getElementsByTag("p").get(0);
News news = new News();
String url = aElement.attr("href");
String md5 = MD5Utils.generate(url);
String title = h2Element.text();
String subTitle = pElement.text();
String src = imgElement.attr("data-original");
news.setSrc(src);
news.setMd5(md5);
news.setUrl(url);
news.setTitle(title);
news.setSubTitle(subTitle);
data.add(news);
}
}
}
}
}
return data;
}
public static String getITHomeNewsData(String newsUrl) throws IOException
{
String data = null;
Document document = Jsoup.connect(newsUrl).get();
if (null != document)
{
Element element = document.getElementById(IT_HOME_NEWS_CONTENT_ID);
Elements es = element.getElementsByTag("p");
es.first().html("<font color='red'>IT之家</font>");
if (null != es)
{
for(Element element2:es)
{
Elements imgsElement = element2.getElementsByTag("img");
if(null != imgsElement && imgsElement.size() > 0)
{
Element imgElement = imgsElement.first();
imgElement.attr("onclick", "window.android.toast(\"" + imgElement.attr("src") + "\"" + "," + 0 + ")");
}
}
data = es.toString();
if (null != data)
{
return new String(data.getBytes(), "UTF-8");
}
}
}
return data;
}
}