1 package twitter.manage;
\r
3 import twitter.action.streaming.TweetStreamingListener;
\r
4 import twitter4j.ConnectionLifeCycleListener;
\r
5 import twitter4j.DirectMessage;
\r
6 import twitter4j.Status;
\r
7 import twitter4j.TwitterStream;
\r
8 import twitter4j.TwitterStreamFactory;
\r
9 import twitter4j.User;
\r
10 import twitter4j.UserStreamAdapter;
\r
11 import twitter4j.auth.AccessToken;
\r
13 public class TweetUserStreamManager extends UserStreamAdapter {
\r
15 //自分がfollowしているユーザの情報取得
\r
16 private TweetUserStream userStream;
\r
18 private TweetSearchStream searchStream;
\r
20 private TweetManager tweetManager = null;
\r
24 * @param consumerKey
\r
25 * @param consumerSecret
\r
27 * @param tweetManager
\r
29 public TweetUserStreamManager(String consumerKey, String consumerSecret, AccessToken ac, TweetManager tweetManager) {
\r
31 userStream = new TweetUserStream(consumerKey, consumerSecret, ac, tweetManager);
\r
32 searchStream = new TweetSearchStream(consumerKey, consumerSecret, ac, tweetManager);
\r
33 this.tweetManager = tweetManager;
\r
34 }catch(Exception e) {
\r
35 e.printStackTrace();
\r
43 public void setTimelineListener(TweetStreamingListener listener) {
\r
44 this.userStream.setTimelineListener(listener);
\r
50 public void stopTimelineListener() {
\r
51 this.userStream.setTimelineListener(null);
\r
55 * Direct messageを監視するリスナー登録
\r
57 * @param notifyManager
\r
59 public void setDirectMessageListener(TweetStreamingListener listener, TweetNotifyManager notifyManager) {
\r
60 this.userStream.setDirectMessageListener(listener);
\r
61 this.userStream.setDirectMessageNotifyManager(notifyManager);
\r
65 * directmessageを監視するリスナーを削除
\r
67 public void stopDirectMessageListener() {
\r
68 this.userStream.setDirectMessageListener(null);
\r
74 * @param notifyManager メッセージをバルーン通知するためのマネージャー, nullなら通知しない
\r
76 public void setMentionListener(TweetStreamingListener listener, TweetNotifyManager notifyManager) {
\r
77 this.userStream.setMentionListener(listener);
\r
78 this.userStream.setMentionNotifyManager(notifyManager);
\r
82 * Mentionを監視するリスナーをストップ
\r
84 public void stopMentionListener() {
\r
85 this.userStream.setMentionListener(null);
\r
86 this.userStream.setMentionNotifyManager(null);
\r
94 public void setSearchListener(String word, TweetStreamingListener listener) {
\r
95 searchStream.addSearchWord(word, listener);
\r
102 public void stopSearchListener(String word) {
\r
103 searchStream.removeSearchWord(word);
\r
111 public void setUserListener(long userid, TweetStreamingListener listener) {
\r
112 searchStream.addSearchUser(userid, listener);
\r
116 * 指定したユーザを監視するリスナーを停止
\r
119 public void stopUserListener(long userid) {
\r
120 searchStream.removeSearchUser(userid);
\r
124 * 指定したワードの最終更新status IDを取得
\r
128 public long getSearchLastUpdateID(String word) {
\r
129 return searchStream.getLastUpdateID(word);
\r
133 * 指定したユーザの最終更新status idを取得
\r
137 public long getUserLastUpdateID(long userid) {
\r
138 return searchStream.getUserLastUpdateID(userid);
\r
142 * コネクションに変化が起きた時に呼び出される
\r
145 public void addCollectionLifeCycleListener(ConnectionLifeCycleListener listener) {
\r
146 this.userStream.addConnectionLifeCycleListener(listener);
\r
152 public void start() {
\r
153 this.userStream.start();
\r
159 public void stop() {
\r
160 this.userStream.stop();
\r