Skip to content

Commit

Permalink
statusnet improvement
Browse files Browse the repository at this point in the history
auto detect api type
  • Loading branch information
mariotaku committed Mar 4, 2016
1 parent f080f84 commit 7a77a25
Show file tree
Hide file tree
Showing 69 changed files with 870 additions and 303 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -253,4 +253,5 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst
int TWITTER_MAX_IMAGE_WIDTH = 1024;
int TWITTER_MAX_IMAGE_HEIGHT = 2048;

String USER_TYPE_TWITTER_COM = "twitter.com";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.mariotaku.twidere.api.statusnet;

import org.mariotaku.twidere.api.statusnet.api.GroupResources;
import org.mariotaku.twidere.api.statusnet.api.SearchResources;
import org.mariotaku.twidere.api.statusnet.api.StatusNetResources;
import org.mariotaku.twidere.api.statusnet.api.UserResources;

/**
* Created by mariotaku on 16/3/4.
*/
public interface StatusNet extends StatusNetResources, GroupResources, SearchResources, UserResources {
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,45 @@
package org.mariotaku.twidere.api.statusnet.api;

import org.mariotaku.restfu.annotation.method.GET;
import org.mariotaku.restfu.annotation.param.Path;
import org.mariotaku.restfu.annotation.param.Query;
import org.mariotaku.twidere.api.statusnet.model.Group;
import org.mariotaku.twidere.api.twitter.TwitterException;
import org.mariotaku.twidere.api.twitter.model.Paging;
import org.mariotaku.twidere.api.twitter.model.ResponseList;
import org.mariotaku.twidere.api.twitter.model.Status;
import org.mariotaku.twidere.api.twitter.model.User;

/**
* Created by mariotaku on 16/3/4.
*/
public interface GroupResources {

ResponseList<Status> getUserListStatuses(@Query("group_id") long groupId, @Query Paging paging) throws TwitterException;
@GET("/statusnet/groups/timeline/{group_id}.json")
ResponseList<Status> getGroupStatuses(@Path("group_id") long groupId, @Query Paging paging) throws TwitterException;

ResponseList<Status> getGroupStatuses(@Query("id") String name, @Query Paging paging) throws TwitterException;
@GET("/statusnet/groups/timeline/{group_name}.json")
ResponseList<Status> getGroupStatuses(@Path("group_name") String name, @Query Paging paging) throws TwitterException;

@GET("/statusnet/groups/show.json")
Group showGroup(@Query("group_id") long groupId) throws TwitterException;

@GET("/statusnet/groups/show.json")
Group showGroup(@Query("group_name") String groupName) throws TwitterException;

@GET("/statusnet/groups/membership.json")
ResponseList<User> getGroupMembers(@Query("group_id") long groupId) throws TwitterException;

@GET("/statusnet/groups/membership.json")
ResponseList<User> getGroupMembers(@Query("group_name") String groupName) throws TwitterException;

@GET("/statusnet/groups/list.json")
ResponseList<Group> getGroups(@Query("screen_name") String screenName) throws TwitterException;

@GET("/statusnet/groups/list.json")
ResponseList<Group> getGroups(@Query("id") long userId) throws TwitterException;

@GET("/statusnet/groups/list_all.json")
ResponseList<Group> getAllGroups(@Query Paging paging) throws TwitterException;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.mariotaku.twidere.api.statusnet.api;

import org.mariotaku.restfu.annotation.method.GET;
import org.mariotaku.restfu.annotation.param.Query;
import org.mariotaku.twidere.api.twitter.TwitterException;
import org.mariotaku.twidere.api.twitter.model.Paging;
import org.mariotaku.twidere.api.twitter.model.ResponseList;
import org.mariotaku.twidere.api.twitter.model.Status;

/**
* Created by mariotaku on 16/3/4.
*/
public interface SearchResources {

@GET("/search.json")
ResponseList<Status> searchStatuses(@Query("q") String query, @Query Paging paging) throws TwitterException;

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,5 @@ public interface StatusNetResources {
@GET("/statusnet/config.json")
StatusNetConfig getStatusNetConfig() throws TwitterException;

@GET("/search.json")
ResponseList<Status> searchStatuses(@Query("q") String query, @Query Paging paging) throws TwitterException;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.mariotaku.twidere.api.statusnet.api;

import org.mariotaku.restfu.annotation.method.GET;
import org.mariotaku.restfu.annotation.param.Query;
import org.mariotaku.twidere.api.twitter.TwitterException;
import org.mariotaku.twidere.api.twitter.model.PageableResponseList;
import org.mariotaku.twidere.api.twitter.model.Paging;
import org.mariotaku.twidere.api.twitter.model.User;

/**
* Created by mariotaku on 16/3/4.
*/
public interface UserResources {

@GET("/statuses/friends.json")
PageableResponseList<User> getStatusesFriendsList(@Query("user_id") long userId, @Query Paging paging) throws TwitterException;

@GET("/statuses/friends.json")
PageableResponseList<User> getStatusesFriendsList(@Query("screen_name") String screenName, @Query Paging paging) throws TwitterException;

@GET("/statuses/followers.json")
PageableResponseList<User> getStatusesFollowersList(@Query("user_id") long userId, @Query Paging paging) throws TwitterException;

@GET("/statuses/followers.json")
PageableResponseList<User> getStatusesFollowersList(@Query("screen_name") String screenName, @Query Paging paging) throws TwitterException;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
package org.mariotaku.twidere.api.statusnet.model;

import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;

import org.mariotaku.twidere.api.twitter.util.TwitterDateConverter;

import java.util.Date;

/**
* Created by mariotaku on 16/3/4.
*/
@JsonObject
public class Group {

@JsonField(name = "modified", typeConverter = TwitterDateConverter.class)
Date modified;
@JsonField(name = "nickname")
String nickname;
@JsonField(name = "admin_count")
int adminCount;
@JsonField(name = "created", typeConverter = TwitterDateConverter.class)
Date created;
@JsonField(name = "id")
long id;
@JsonField(name = "homepage")
String homepage;
@JsonField(name = "fullname")
String fullname;
@JsonField(name = "homepage_logo")
String homepageLogo;
@JsonField(name = "mini_logo")
String miniLogo;
@JsonField(name = "url")
String url;
@JsonField(name = "member_count")
int memberCount;
@JsonField(name = "blocked")
boolean blocked;
@JsonField(name = "stream_logo")
String streamLogo;
@JsonField(name = "member")
boolean member;
@JsonField(name = "description")
String description;
@JsonField(name = "original_logo")
String originalLogo;
@JsonField(name = "location")
String location;

public Date getModified() {
return modified;
}

public String getNickname() {
return nickname;
}

public int getAdminCount() {
return adminCount;
}

public Date getCreated() {
return created;
}

public long getId() {
return id;
}

public String getHomepage() {
return homepage;
}

public String getFullname() {
return fullname;
}

public String getHomepageLogo() {
return homepageLogo;
}

public String getMiniLogo() {
return miniLogo;
}

public String getUrl() {
return url;
}

public int getMemberCount() {
return memberCount;
}

public boolean isBlocked() {
return blocked;
}

public String getStreamLogo() {
return streamLogo;
}

public boolean isMember() {
return member;
}

public String getDescription() {
return description;
}

public String getOriginalLogo() {
return originalLogo;
}

public String getLocation() {
return location;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,13 @@

package org.mariotaku.twidere.api.twitter;

import org.mariotaku.twidere.api.statusnet.api.StatusNetResources;
import org.mariotaku.twidere.api.statusnet.StatusNet;
import org.mariotaku.twidere.api.twitter.api.DirectMessagesResources;
import org.mariotaku.twidere.api.twitter.api.FavoritesResources;
import org.mariotaku.twidere.api.twitter.api.FriendsFollowersResources;
import org.mariotaku.twidere.api.twitter.api.HelpResources;
import org.mariotaku.twidere.api.twitter.api.ListsResources;
import org.mariotaku.twidere.api.twitter.api.ListResources;
import org.mariotaku.twidere.api.twitter.api.PlacesGeoResources;
import org.mariotaku.twidere.api.twitter.api.PrivateActivityResources;
import org.mariotaku.twidere.api.twitter.api.PrivateDirectMessagesResources;
import org.mariotaku.twidere.api.twitter.api.PrivateFriendsFollowersResources;
import org.mariotaku.twidere.api.twitter.api.PrivateScheduleResources;
import org.mariotaku.twidere.api.twitter.api.PrivateTimelinesResources;
import org.mariotaku.twidere.api.twitter.api.PrivateTweetResources;
import org.mariotaku.twidere.api.twitter.api.SavedSearchesResources;
import org.mariotaku.twidere.api.twitter.api.SearchResource;
import org.mariotaku.twidere.api.twitter.api.SpamReportingResources;
Expand All @@ -41,9 +35,7 @@
import org.mariotaku.twidere.api.twitter.api.UsersResources;

public interface Twitter extends SearchResource, TimelineResources,
TweetResources, UsersResources, ListsResources, DirectMessagesResources, FriendsFollowersResources,
TweetResources, UsersResources, ListResources, DirectMessagesResources, FriendsFollowersResources,
FavoritesResources, SpamReportingResources, SavedSearchesResources, TrendsResources, PlacesGeoResources,
HelpResources, StatusNetResources, PrivateActivityResources, PrivateTweetResources,
PrivateTimelinesResources, PrivateFriendsFollowersResources, PrivateDirectMessagesResources,
PrivateScheduleResources {
HelpResources, TwitterPrivate, StatusNet {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.mariotaku.twidere.api.twitter;

import org.mariotaku.twidere.api.twitter.api.PrivateActivityResources;
import org.mariotaku.twidere.api.twitter.api.PrivateDirectMessagesResources;
import org.mariotaku.twidere.api.twitter.api.PrivateFriendsFollowersResources;
import org.mariotaku.twidere.api.twitter.api.PrivateScheduleResources;
import org.mariotaku.twidere.api.twitter.api.PrivateTimelinesResources;
import org.mariotaku.twidere.api.twitter.api.PrivateTweetResources;

/**
* Created by mariotaku on 16/3/4.
*/
public interface TwitterPrivate extends PrivateActivityResources, PrivateTweetResources,
PrivateTimelinesResources, PrivateFriendsFollowersResources, PrivateDirectMessagesResources,
PrivateScheduleResources {
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,13 @@ public interface FriendsFollowersResources {
@BodyType(BodyType.FORM)
User destroyFriendship(@Param("screen_name") String screenName) throws TwitterException;

@GET("/followers/ids.json")
IDs getFollowersIDs(@Query Paging paging) throws TwitterException;

@GET("/followers/ids.json")
IDs getFollowersIDs(@Query("user_id") long userId, @Query Paging paging) throws TwitterException;

@GET("/followers/ids.json")
IDs getFollowersIDs(@Query("screen_name") String screenName, @Query Paging paging) throws TwitterException;

@GET("/followers/list.json")
Expand All @@ -79,10 +82,13 @@ public interface FriendsFollowersResources {
@GET("/followers/list.json")
PageableResponseList<User> getFollowersList(@Query("screen_name") String screenName, @Query Paging paging) throws TwitterException;

@GET("/friends/ids.json")
IDs getFriendsIDs(Paging paging) throws TwitterException;

@GET("/friends/ids.json")
IDs getFriendsIDs(long userId, Paging paging) throws TwitterException;

@GET("/friends/ids.json")
IDs getFriendsIDs(String screenName, Paging paging) throws TwitterException;

@GET("/friends/list.json")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@
import org.mariotaku.twidere.api.twitter.model.UserList;
import org.mariotaku.twidere.api.twitter.model.UserListUpdate;

@SuppressWarnings("RedundantThrows")
public interface ListsResources {
public interface ListResources {
@POST("/lists/members/create.json")
UserList addUserListMember(@Query("list_id") long listId, @Query("user_id") long userId) throws TwitterException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,39 +19,14 @@

package org.mariotaku.twidere.api.twitter.model;

import org.mariotaku.restfu.http.HttpResponse;
import org.mariotaku.twidere.api.twitter.util.InternalParseUtil;

import java.util.ArrayList;

/**
* Created by mariotaku on 15/5/7.
*/
public class PageableResponseList<T> extends ArrayList<T> implements TwitterResponse, CursorSupport {
public class PageableResponseList<T> extends ResponseList<T> implements TwitterResponse, CursorSupport {

int accessLevel;
RateLimitStatus rateLimitStatus;
long previousCursor;
long nextCursor;


@Override
public final void processResponseHeader(HttpResponse resp) {
rateLimitStatus = RateLimitStatus.createFromResponseHeader(resp);
accessLevel = InternalParseUtil.toAccessLevel(resp);
}

@Override
@AccessLevel
public final int getAccessLevel() {
return accessLevel;
}

@Override
public final RateLimitStatus getRateLimitStatus() {
return rateLimitStatus;
}

@Override
public long getNextCursor() {
return nextCursor;
Expand Down

0 comments on commit 7a77a25

Please sign in to comment.