package weibo4j; import java.util.List; import java.util.Map; import weibo4j.model.Favorites; import weibo4j.model.FavoritesIds; import weibo4j.model.FavoritesTag; import weibo4j.model.Paging; import weibo4j.model.PostParameter; import weibo4j.model.Tag; import weibo4j.model.WeiboException; import weibo4j.org.json.JSONException; import weibo4j.org.json.JSONObject; import weibo4j.util.ArrayUtils; import weibo4j.util.WeiboConfig; public class Favorite extends Weibo { private static final long serialVersionUID = 2298934944028795652L; public Favorite(String access_token) { this.access_token = access_token; } /*----------------------------收藏接口----------------------------------------*/ /** * 获取当前登录用户的收藏列表 * * @return list of the Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites * @since JDK 1.5 */ public List<Favorites> getFavorites() throws WeiboException { return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites.json", access_token)); } /** * 获取当前登录用户的收藏列表 * * @param page * @return list of the Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites * @since JDK 1.5 */ public List<Favorites> getFavorites(Paging page) throws WeiboException { return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites.json", null, page, access_token)); } /** * 获取当前登录用户的收藏列表 * * @param map * 参数列表 * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites * @since JDK 1.5 */ public List<Favorites> getFavorites(Map<String, String> map) throws WeiboException { PostParameter[] parList = ArrayUtils.mapToArray(map); return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites.json", parList, access_token)); } /** * 获取当前登录用户的收藏列表ID * * @return list of the Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites * @since JDK 1.5 */ public List<FavoritesIds> getFavoritesIds() throws WeiboException { return FavoritesIds.constructFavoritesIds(client.get( WeiboConfig.getValue("baseURL") + "favorites/ids.json", access_token)); } /** * 获取当前登录用户的收藏列表ID * * @return list of the Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites * @since JDK 1.5 */ public JSONObject getFavoritesIds(Paging page) throws WeiboException { return client.get( WeiboConfig.getValue("baseURL") + "favorites/ids.json", null, page, access_token).asJSONObject(); } /** * 获取当前登录用户的收藏列表ID * * @param map * 参数列表 * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites/ids * @since JDK 1.5 */ public JSONObject getFavoritesIds(Map<String, String> map) throws WeiboException { PostParameter[] parList = ArrayUtils.mapToArray(map); return client.get( WeiboConfig.getValue("baseURL") + "favorites/ids.json", parList, access_token).asJSONObject(); } /** * 根据收藏ID获取指定的收藏信息 * * @param id * @return Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites/show * @since JDK 1.5 */ public Favorites showFavorites(String id) throws WeiboException { return new Favorites(client.get(WeiboConfig.getValue("baseURL") + "favorites/show.json", new PostParameter[] { new PostParameter("id", id) }, access_token)); } /** * 根据标签获取当前登录用户该标签下的收藏列表 * * @param tid * @return list of the favorite Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites/by_tags * @since JDK 1.5 */ public List<Favorites> getFavoritesByTags(String tid) throws WeiboException { return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites/by_tags.json", new PostParameter[] { new PostParameter("tid", tid) }, access_token)); } /** * 根据标签获取当前登录用户该标签下的收藏列表 * * @param tid * @param page * @return list of the favorite Status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/show * @since JDK 1.5 */ public List<Favorites> getFavoritesByTags(String tid, Paging page) throws WeiboException { return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites/by_tags.json", new PostParameter[] { new PostParameter("tid", tid) }, page, access_token)); } /** * 根据标签获取当前登录用户该标签下的收藏列表 * * @param map * 参数列表 * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites/by_tags * @since JDK 1.5 */ public List<Favorites> getFavoritesByTags(Map<String, String> map) throws WeiboException { PostParameter[] parList = ArrayUtils.mapToArray(map); return Favorites.constructFavorites(client.get( WeiboConfig.getValue("baseURL") + "favorites/by_tags.json", parList, access_token)); } /** * 获取当前登录用户的收藏标签列表 * * @param page * @return list of the favorite tags * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.1 * @see http://open.weibo.com/wiki/2/favorites/tags * @since JDK 1.5 */ public List<FavoritesTag> getFavoritesTags() throws WeiboException { return Tag.constructTag(client.get(WeiboConfig.getValue("baseURL") + "favorites/tags.json", access_token)); } /** * 获取当前登录用户的收藏标签列表 * * @param map * 参数列表 * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites/tags * @since JDK 1.5 */ public List<FavoritesTag> getFavoritesTags(Map<String, String> map) throws WeiboException { PostParameter[] parList = ArrayUtils.mapToArray(map); return Tag.constructTag(client.get(WeiboConfig.getValue("baseURL") + "favorites/tags.json", parList, access_token)); } /** * 获取当前用户某个标签下的收藏列表的ID * * @param tid * 需要查询的标签ID * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites/by_tags/ids * @since JDK 1.5 */ public List<FavoritesIds> getFavoritesIdsByTags(String tid) throws WeiboException { return FavoritesIds.constructFavoritesIds(client.get( WeiboConfig.getValue("baseURL") + "favorites/by_tags/ids.json", new PostParameter[] { new PostParameter("tid", tid) }, access_token)); } /** * 获取当前用户某个标签下的收藏列表的ID * * @param map * 参数 * @return * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.2 * @see http://open.weibo.com/wiki/2/favorites/by_tags/ids * @since JDK 1.5 */ public List<FavoritesIds> getFavoritesIdsByTags(Map<String, String> map) throws WeiboException { PostParameter[] parList = ArrayUtils.mapToArray(map); return FavoritesIds.constructFavoritesIds(client.get( WeiboConfig.getValue("baseURL") + "favorites/by_tags/ids.json", parList, access_token)); } /** * 添加一条微博到收藏里 * * @param 要收藏的微博ID * @return Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/create * @since JDK 1.5 */ public Favorites createFavorites(String id) throws WeiboException { return new Favorites(client.post(WeiboConfig.getValue("baseURL") + "favorites/create.json", new PostParameter[] { new PostParameter("id", id) }, access_token)); } /** * 取消收藏一条微博 * * @param 要取消收藏的微博ID * @return Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/destroy * @since JDK 1.5 */ public Favorites destroyFavorites(String id) throws WeiboException { return new Favorites(client.post(WeiboConfig.getValue("baseURL") + "favorites/destroy.json", new PostParameter[] { new PostParameter("id", id) }, access_token)); } /** * 批量删除收藏 * * @param ids * 要取消收藏的收藏ID,用半角逗号分隔,最多不超过10个。 * @return destroy list of Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/destroy_batch * @since JDK 1.5 */ public Boolean destroyFavoritesBatch(String ids) throws WeiboException { try { return client .post(WeiboConfig.getValue("baseURL") + "favorites/destroy_batch.json", new PostParameter[] { new PostParameter("ids", ids) }, access_token).asJSONObject().getBoolean("result"); } catch (JSONException e) { throw new WeiboException(e); } } /** * 更新一条收藏的收藏标签 * * @param id * 要需要更新的收藏ID * @return update tag of Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/tags/update * @since JDK 1.5 */ public Favorites updateFavoritesTags(String id) throws WeiboException { return new Favorites(client.post(WeiboConfig.getValue("baseURL") + "favorites/tags/update.json", new PostParameter[] { new PostParameter("id", id) }, access_token)); } /** * 更新一条收藏的收藏标签 * * @param id * 要需要更新的收藏ID * @param tags * 需要更新的标签内容,必须做URLencode,用半角逗号分隔,最多不超过2条。 * @return update tag of Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/tags/update * @since JDK 1.5 */ public Favorites updateFavoritesTags(String id, String tags) throws WeiboException { return new Favorites(client.post(WeiboConfig.getValue("baseURL") + "favorites/tags/update.json", new PostParameter[] { new PostParameter("id", id), new PostParameter("tags", tags) }, access_token)); } /** * 更新当前登录用户所有收藏下的指定标签 * * @param tid * 需要更新的标签ID * @param tag * 需要更新的标签内容,必须做URLencode * @return update tags of Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/tags/update_batch * @since JDK 1.5 */ public JSONObject updateFavoritesTagsBatch(String tid, String tag) throws WeiboException { return client.post( WeiboConfig.getValue("baseURL") + "favorites/tags/update_batch.json", new PostParameter[] { new PostParameter("tid", tid), new PostParameter("tag", tag) }, access_token) .asJSONObject(); } /** * 删除当前登录用户所有收藏下的指定标签 * * @param id * 需要删除的标签ID。。 * @return destroy tags of Favorites status * @throws WeiboException * when Weibo service or network is unavailable * @version weibo4j-V2 1.0.0 * @see http://open.weibo.com/wiki/2/favorites/tags/destroy_batch * @since JDK 1.5 */ public Boolean destroyFavoritesTagsBatch(String ids) throws WeiboException { try { return client .post(WeiboConfig.getValue("baseURL") + "favorites/destroy_batch.json", new PostParameter[] { new PostParameter("ids", ids) }, access_token).asJSONObject().getBoolean("result"); } catch (JSONException e) { throw new WeiboException(e); } } }