package com.weibo.sdk.android.api;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.WeiboParameters;
import com.weibo.sdk.android.net.RequestListener;
/**
* 此类封装了收藏的接口,详情见<a href="http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E6.94.B6.E8.97.8F">公共接口</a>
* @author xiaowei6@staff.sina.com.cn
*
*/
public class FavoritesAPI extends WeiboAPI {
public FavoritesAPI(Oauth2AccessToken accessToken) {
super(accessToken);
}
private static final String SERVER_URL_PRIX = API_SERVER + "/favorites";
/**
* 获取当前登录用户的收藏列表
*
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void favorites(int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + ".json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前用户的收藏列表的ID
*
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1
* @param listener
*/
public void ids( int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 根据收藏ID获取指定的收藏信息
*
* @param id 需要查询的收藏ID。
* @param listener
*/
public void show(long id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
request( SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 根据标签获取当前登录用户该标签下的收藏列表
*
* @param tid 需要查询的标签ID。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void byTags(long tid, int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("tid", tid);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/by_tags.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户的收藏标签列表
*
* @param count 单页返回的记录条数,默认为10。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void tags( int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/tags.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前用户某个标签下的收藏列表的ID
*
* @param tid 需要查询的标签ID。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void byTagsIds( long tid, int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("tid", tid);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/by_tags/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 添加一条微博到收藏里
*
* @param id 要收藏的微博ID。
* @param listener
*/
public void create( long id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
request( SERVER_URL_PRIX + "/create.json", params, HTTPMETHOD_POST, listener);
}
/**
* 取消收藏一条微博
*
* @param id 要取消收藏的微博ID。
* @param listener
*/
public void destroy( long id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
request( SERVER_URL_PRIX + "/destroy.json", params, HTTPMETHOD_POST, listener);
}
/**
* 根据收藏ID批量取消收藏
*
* @param ids 要取消收藏的收藏ID,最多不超过10个。
* @param listener
*/
public void destroyBatch( long[] ids, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
StringBuilder strb = new StringBuilder();
for (long id : ids) {
strb.append(String.valueOf(id)).append(",");
}
strb.deleteCharAt(strb.length() - 1);
params.add("ids", strb.toString());
request( SERVER_URL_PRIX + "/destroy_batch.json", params, HTTPMETHOD_POST, listener);
}
/**
* 更新一条收藏的收藏标签
*
* @param id 需要更新的收藏ID。
* @param tags 需要更新的标签内容,最多不超过2条。
* @param listener
*/
public void tagsUpdate( long id, String[] tags, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
StringBuilder strb = new StringBuilder();
for (String tag : tags) {
strb.append(tag).append(",");
}
strb.deleteCharAt(strb.length() - 1);
params.add("tags", strb.toString());
request( SERVER_URL_PRIX + "/tags/update.json", params, HTTPMETHOD_POST, listener);
}
/**
* 更新当前登录用户所有收藏下的指定标签
*
* @param id 需要更新的标签ID。
* @param tag 需要更新的标签内容
* @param listener
*/
public void tagsUpdateBatch( long id, String tag, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("tid", id);
params.add("tag", tag);
request( SERVER_URL_PRIX + "/tags/update_batch.json", params, HTTPMETHOD_POST, listener);
}
/**
* 删除当前登录用户所有收藏下的指定标签
*
* @param tid 需要删除的标签ID。
* @param listener
*/
public void tagsDestroyBatch( long tid, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("tid", tid);
request( SERVER_URL_PRIX + "/tags/destroy_batch.json", params, HTTPMETHOD_POST, listener);
}
}