OSDN Git Service

aa49705ec6f57d8252dfd2effffa1feb5b888b68
[nt-manager/nt-manager.git] / src / twitter / manage / TweetUserStreamManager.java
1 package twitter.manage;\r
2 \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
12 \r
13 public class TweetUserStreamManager extends UserStreamAdapter {\r
14 \r
15         //自分がfollowしているユーザの情報取得\r
16         private TweetUserStream userStream;\r
17         //Search情報\r
18         private TweetSearchStream searchStream;\r
19         //tweet manager\r
20         private TweetManager tweetManager = null;\r
21 \r
22         /**\r
23          *\r
24          * @param consumerKey\r
25          * @param consumerSecret\r
26          * @param ac\r
27          * @param tweetManager\r
28          */\r
29         public TweetUserStreamManager(String consumerKey, String consumerSecret, AccessToken ac, TweetManager tweetManager) {\r
30                 try {\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
36                 }\r
37         }\r
38 \r
39         /**\r
40          * タイムラインを監視するリスナー登録\r
41          * @param listener\r
42          */\r
43         public void setTimelineListener(TweetStreamingListener listener) {\r
44                 this.userStream.setTimelineListener(listener);\r
45         }\r
46 \r
47         /**\r
48          * タイムライン監視リスナーを削除\r
49          */\r
50         public void stopTimelineListener() {\r
51                 this.userStream.setTimelineListener(null);\r
52         }\r
53 \r
54         /**\r
55          * Direct messageを監視するリスナー登録\r
56          * @param listener\r
57          * @param notifyManager\r
58          */\r
59         public void setDirectMessageListener(TweetStreamingListener listener, TweetNotifyManager notifyManager) {\r
60                 this.userStream.setDirectMessageListener(listener);\r
61                 this.userStream.setDirectMessageNotifyManager(notifyManager);\r
62         }\r
63 \r
64         /**\r
65          * directmessageを監視するリスナーを削除\r
66          */\r
67         public void stopDirectMessageListener() {\r
68                 this.userStream.setDirectMessageListener(null);\r
69         }\r
70 \r
71         /**\r
72          * Mentionを監視するリスナー\r
73          * @param listener\r
74          * @param notifyManager メッセージをバルーン通知するためのマネージャー, nullなら通知しない\r
75          */\r
76         public void setMentionListener(TweetStreamingListener listener, TweetNotifyManager notifyManager) {\r
77                 this.userStream.setMentionListener(listener);\r
78                 this.userStream.setMentionNotifyManager(notifyManager);\r
79         }\r
80 \r
81         /**\r
82          * Mentionを監視するリスナーをストップ\r
83          */\r
84         public void stopMentionListener() {\r
85                 this.userStream.setMentionListener(null);\r
86                 this.userStream.setMentionNotifyManager(null);\r
87         }\r
88 \r
89         /**\r
90          * 検索ワードを監視するリスナー\r
91          * @param word\r
92          * @param listener\r
93          */\r
94         public void setSearchListener(String word, TweetStreamingListener listener) {\r
95                 searchStream.addSearchWord(word, listener);\r
96         }\r
97 \r
98         /**\r
99          * 検索ワードを監視するリスナーを停止\r
100          * @param word\r
101          */\r
102         public void stopSearchListener(String word) {\r
103                 searchStream.removeSearchWord(word);\r
104         }\r
105 \r
106         /**\r
107          * 指定したユーザを監視するリスナー\r
108          * @param userid\r
109          * @param listener\r
110          */\r
111         public void setUserListener(long userid, TweetStreamingListener listener) {\r
112                 searchStream.addSearchUser(userid, listener);\r
113         }\r
114 \r
115         /**\r
116          * 指定したユーザを監視するリスナーを停止\r
117          * @param userid\r
118          */\r
119         public void stopUserListener(long userid) {\r
120                 searchStream.removeSearchUser(userid);\r
121         }\r
122 \r
123         /**\r
124          * 指定したワードの最終更新status IDを取得\r
125          * @param word\r
126          * @return\r
127          */\r
128         public long getSearchLastUpdateID(String word) {\r
129                 return searchStream.getLastUpdateID(word);\r
130         }\r
131 \r
132         /**\r
133          * 指定したユーザの最終更新status idを取得\r
134          * @param userid\r
135          * @return\r
136          */\r
137         public long getUserLastUpdateID(long userid) {\r
138                 return searchStream.getUserLastUpdateID(userid);\r
139         }\r
140         \r
141         /**\r
142          * コネクションに変化が起きた時に呼び出される\r
143          * @param listener \r
144          */\r
145         public void addCollectionLifeCycleListener(ConnectionLifeCycleListener listener) {\r
146             this.userStream.addConnectionLifeCycleListener(listener);\r
147         }\r
148         \r
149         /**\r
150          * streaming開始\r
151          */\r
152         public void start() {\r
153             this.userStream.start();\r
154         }\r
155         \r
156         /**\r
157          * streaming停止\r
158          */\r
159         public void stop() {\r
160             this.userStream.stop();\r
161         }\r
162 }\r