OSDN Git Service

Timeline取得にStreaming APIを利用
[nt-manager/nt-manager.git] / src / twitter / manage / TweetUserStream.java
index cec5bfb..6c358df 100644 (file)
@@ -1,5 +1,6 @@
 package twitter.manage;\r
 \r
+import twitter.action.streaming.TweetStreamingListener;\r
 import twitter4j.DirectMessage;\r
 import twitter4j.Status;\r
 import twitter4j.TwitterStream;\r
@@ -16,21 +17,37 @@ import twitter4j.auth.AccessToken;
 public class TweetUserStream extends UserStreamAdapter{\r
        //streaming\r
        private TwitterStream twitterStream = null;\r
+       //timeline監視listener\r
+       private TweetStreamingListener timelineListener = null;\r
+       //tweet manager\r
+       private TweetManager tweetManager = null;\r
 \r
        /**\r
         *\r
         * @param consumerKey\r
         * @param consumerSecret\r
         * @param ac アクセストークン\r
+        * @param tweetManager\r
         */\r
-       public TweetUserStream(String consumerKey, String consumerSecret, AccessToken ac) {\r
+       public TweetUserStream(String consumerKey, String consumerSecret, AccessToken ac, TweetManager tweetManager) {\r
+               this.tweetManager = tweetManager;\r
                this.twitterStream = new TwitterStreamFactory().getInstance();\r
                this.twitterStream.setOAuthConsumer(consumerKey, consumerSecret);\r
                this.twitterStream.setOAuthAccessToken(ac);\r
                this.twitterStream.addListener(this);\r
                this.twitterStream.user();\r
+\r
+       }\r
+\r
+       /**\r
+        * タイムライン監視\r
+        * @param timelineListener\r
+        */\r
+       public void setTimelineListener(TweetStreamingListener timelineListener) {\r
+               this.timelineListener = timelineListener;\r
        }\r
 \r
+\r
        @Override\r
        public void onStatus(Status status) {\r
                if( status.isRetweetedByMe() ) {\r
@@ -38,6 +55,12 @@ public class TweetUserStream extends UserStreamAdapter{
                }\r
                System.out.println("@" + status.getUser().getScreenName() + " - "\r
                                + status.getText());\r
+\r
+               //タイムライン監視\r
+               if( this.timelineListener != null ) {\r
+                       this.timelineListener.update(status);\r
+                       this.tweetManager.setSinceTweetID(status.getId());\r
+               }\r
        }\r
 \r
        @Override\r