OSDN Git Service

指定したユーザが保持しているリスト一覧を取得する機能を追加
authorspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Sat, 16 Oct 2010 14:59:18 +0000 (14:59 +0000)
committerspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Sat, 16 Oct 2010 14:59:18 +0000 (14:59 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/nt-manager/NishioTweetManager/trunk@91 d8c9ecd3-d47d-4367-8645-de82c00e513f

src/twitter/manage/TweetManager.java
test/TestDriver.java

index 2df01d0..77ba8af 100644 (file)
@@ -7,6 +7,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
@@ -20,6 +21,7 @@ import java.util.logging.Logger;
 import twitter.log.TwitterLogManager;
 import twitter4j.DirectMessage;
 import twitter4j.GeoLocation;
+import twitter4j.PagableResponseList;
 import twitter4j.Paging;
 import twitter4j.Place;
 import twitter4j.Query;
@@ -31,6 +33,7 @@ import twitter4j.Twitter;
 import twitter4j.TwitterException;
 import twitter4j.TwitterFactory;
 import twitter4j.User;
+import twitter4j.UserList;
 import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;
 import twitter4j.http.AccessToken;
@@ -749,6 +752,33 @@ public class TweetManager {
     }
 
     /**
+     * 指定したユーザが保持しているリスト一覧を取得
+     * @param userScreenName
+     * @return
+     */
+    public List<UserList> getUserLists(String userScreenName) {
+        List<UserList> userlist = new ArrayList<UserList>();
+        long cursor = -1;
+        try {
+            for (;;) {
+                //ユーザリスト取得
+                PagableResponseList<UserList> list = this.twitter.getUserLists(userScreenName, cursor);
+                userlist.addAll( list );
+
+                if( list.hasNext() ) {
+                    //次のカーソルを取得
+                    cursor = list.getNextCursor();
+                }else {
+                    break;
+                }
+            }
+        } catch (TwitterException ex) {
+            Logger.getLogger(TweetManager.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        return userlist;
+    }
+
+    /**
      * 指定したユーザの最新の発言を取得
      * @param userID
      * @param sinceID
index 48df7e9..d913b63 100644 (file)
@@ -18,6 +18,7 @@ import twitter4j.Status;
 import twitter4j.Twitter;
 import twitter4j.TwitterException;
 import twitter4j.TwitterFactory;
+import twitter4j.UserList;
 import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;
 import twitter4j.http.AccessToken;
@@ -87,40 +88,18 @@ public class TestDriver {
     }
 
     public static void main(String[] args) {
-        TweetTaskManager manager = new TweetTaskManager();
+        TweetManager manager = new TweetManager();
         try {
-            manager.addTask("TEST1", new TweetUpdateTask() {
-
-                @Override
-                public void runTask() throws TweetTaskException {
-                    System.out.println("TASK1 execute");
-                }
-            });
-
-            manager.addTask("TEST2", new TweetUpdateTask() {
-
-                @Override
-                public void runTask() throws TweetTaskException {
-                    System.out.println("TASK2 execute");
-                }
-            });
-            
-            manager.startTask("TEST1", 1000);
-            manager.startTask("TEST2", 1500);
-
-            Thread.sleep(3000);
-            manager.shutdownTask("TEST1");
-
-            Thread.sleep(3000);
-            manager.shutdownTask("TEST2");
-
-            Thread.sleep(3000);
-            manager.shutdownTask("TESTTEST");
-        } catch (InterruptedException ex) {
+            manager.loginTwitter();
+            List<UserList> userlist = manager.getUserLists("applegarden_01");
+            for(UserList u : userlist ) {
+                System.out.println( u );
+            }
+        } catch (FileNotFoundException ex) {
             Logger.getLogger(TestDriver.class.getName()).log(Level.SEVERE, null, ex);
-        } catch (TweetTaskException ex) {
+        } catch (IOException ex) {
             Logger.getLogger(TestDriver.class.getName()).log(Level.SEVERE, null, ex);
         }
-        
+
     }
 }