package com.roboo.like.google.news.list.utils;
import java.util.LinkedList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.text.TextUtils;
import com.roboo.like.google.models.NewsItem;
import com.roboo.like.google.utils.MD5Utils;
/***
* 下厨房
*
* @author bo.li 2014-8-4 上午10:06:08 TODO
*/
public class XCFNewsListUtils extends BaseNewsListUtils
{
private static final String BASE_XCF_URL = "http://m.xiachufang.com";
private static final int PAGE_SIZE = 15;
public static LinkedList<NewsItem> getXCFNewsList(String xcfUrl, int pageNo) throws Exception
{
LinkedList<NewsItem> data = null;
String url = xcfUrl + "&limit=" + PAGE_SIZE + "&offset=" + (pageNo - 1) * PAGE_SIZE;
System.out.println("xcfUrl = " + url);
Document document = Jsoup.connect(url).get();
Elements elements = null;
Element element = document.getElementById("add-more-container");
String title = null,source="下厨房", subTitle = null, md5 = null, time = null, src = null, newsUrl = null;
md5 = MD5Utils.generate(url);
time = "今天";
time = "第" + pageNo + "页";
if (null != element)
{
elements = element.getElementsByTag("article");
}
if (!elements.isEmpty())
{
if (!elements.isEmpty())
{
data = new LinkedList<NewsItem>();
for (int i = 0; i < elements.size(); i++)
{
element = elements.get(i);
Elements tmpElements = element.getElementsByClass("body");
if (!tmpElements.isEmpty())
{
tmpElements = tmpElements.get(0).getElementsByClass("cover");
if (!tmpElements.isEmpty())
{
src = tmpElements.get(0).attr("style");
src = handlSrc(src);
}
// System.out.println("src = " + src);
}
tmpElements = element.getElementsByClass("content");
if (!tmpElements.isEmpty())
{
title = tmpElements.get(0).getElementsByTag("header").text();
subTitle = tmpElements.get(0).getElementsByTag("p").text();
}
tmpElements = element.getElementsByTag("a");
if (!tmpElements.isEmpty())
{
newsUrl = BASE_XCF_URL + tmpElements.get(0).attr("href");
}
NewsItem item = new NewsItem();
item.setSrc(src);
item.setTime(time);
item.setMd5(md5);
item.setUrl(newsUrl);
item.setTitle(title);
item.setSource(source);
item.setSubTitle(subTitle);
if (!data.contains(item))
{
data.add(item);
}
}
}
}
return data;
}
private static String handlSrc(String src)
{
// src = background-image: url(http://i3.xiachufang.com/image/280/f55c60929f3611e38844b8ca3aeed2d7.jpg);
if (!TextUtils.isEmpty(src))
{
if (src.contains("url"))
{
src = src.split("url")[1];
src = src.substring(1, src.length()-2);
}
}
return src;
}
private static String getTime(String time)
{
String newTime = "今天";
if (time.contains(" "))
{
String[] tmp = time.split(" ");
if (tmp.length == 2)
{
String ymd = tmp[0];
if (ymd.contains("-"))
{
tmp = ymd.split("-");
if (tmp.length == 3)
{
String year = tmp[0].trim();
String month = tmp[1].trim();
String day = tmp[2].trim();
newTime = month + "月" + day + "日";
}
}
}
}
return newTime.trim();
}
@Override
public LinkedList<NewsItem> getNewsList(String baseUrl, int pageNo) throws Exception
{
return getXCFNewsList(baseUrl, pageNo);
}
}