package org.qii.weiciyuan.dao.search;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import org.qii.weiciyuan.bean.MessageBean;
import org.qii.weiciyuan.bean.SearchStatusListBean;
import org.qii.weiciyuan.bean.UserListBean;
import org.qii.weiciyuan.dao.URLHelper;
import org.qii.weiciyuan.support.debug.AppLogger;
import org.qii.weiciyuan.support.error.WeiboException;
import org.qii.weiciyuan.support.http.HttpMethod;
import org.qii.weiciyuan.support.http.HttpUtility;
import org.qii.weiciyuan.support.settinghelper.SettingUtility;
import org.qii.weiciyuan.support.utils.TimeUtility;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* User: qii
* Date: 12-9-8
*/
public class SearchDao {
public UserListBean getUserList() throws WeiboException {
String url = URLHelper.USERS_SEARCH;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("count", count);
map.put("page", page);
map.put("q", q);
String jsonData = null;
jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Get, url, map);
Gson gson = new Gson();
UserListBean value = null;
try {
value = gson.fromJson(jsonData, UserListBean.class);
} catch (JsonSyntaxException e) {
AppLogger.e(e.getMessage());
}
return value;
}
public SearchStatusListBean getStatusList() throws WeiboException {
String url = URLHelper.STATUSES_SEARCH;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("count", count);
map.put("page", page);
map.put("q", q);
String jsonData = null;
jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Get, url, map);
Gson gson = new Gson();
SearchStatusListBean value = null;
try {
value = gson.fromJson(jsonData, SearchStatusListBean.class);
List<MessageBean> list = value.getItemList();
Iterator<MessageBean> iterator = list.iterator();
while (iterator.hasNext()) {
MessageBean msg = iterator.next();
//message is deleted by sina
if (msg.getUser() == null) {
iterator.remove();
} else {
msg.getListViewSpannableString();
TimeUtility.dealMills(msg);
}
}
} catch (JsonSyntaxException e) {
AppLogger.e(e.getMessage());
}
return value;
}
private String access_token;
private String q;
private String count;
private String page;
public SearchDao(String access_token, String q) {
this.access_token = access_token;
this.q = q;
this.count = SettingUtility.getMsgCount();
}
public SearchDao setCount(String count) {
this.count = count;
return this;
}
public SearchDao setPage(String page) {
this.page = page;
return this;
}
}