OSDN Git Service

複数路線
[traindelaybot/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / 5b / 606e02a1126b001115b7b82f2f4ce01a
1 package com.yuji.tdb.twitter;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Calendar;\r
5 import java.util.Date;\r
6 import java.util.List;\r
7 import java.util.logging.Logger;\r
8 \r
9 import twitter4j.Query;\r
10 import twitter4j.QueryResult;\r
11 import twitter4j.Status;\r
12 import twitter4j.Tweet;\r
13 import twitter4j.Twitter;\r
14 import twitter4j.TwitterException;\r
15 import twitter4j.TwitterFactory;\r
16 import twitter4j.auth.AccessToken;\r
17 import twitter4j.conf.ConfigurationBuilder;\r
18 \r
19 import com.yuji.tdb.common.CommonUtil;\r
20 import com.yuji.tdb.utility.StringUtility;\r
21 \r
22 public class TwitterUtil {\r
23         private static final Logger log = Logger\r
24                         .getLogger(TwitterUtil.class.getName());\r
25         private static TwitterUtil instance = null;\r
26         private static Object obj = new Object();\r
27 \r
28         public static TwitterUtil getInstance() {\r
29                 if (instance == null) {\r
30                         synchronized (obj) {\r
31                                 if (instance == null) {\r
32                                         instance = new TwitterUtil();\r
33                                 }\r
34                         }\r
35                 }\r
36                 return instance;\r
37         }\r
38 \r
39         private TwitterUtil() {\r
40 \r
41         }\r
42 \r
43         public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
44 \r
45                 String text = "\8b\9e\95l\93\8c\96k";\r
46 \r
47                 try {\r
48                         ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
49                         confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
50                                         .setOAuthConsumerSecret(consumerSecret);\r
51                         TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
52                         Twitter twitter = factory.getInstance(accessToken);\r
53 \r
54                         Calendar cal = Calendar.getInstance();\r
55                         Date date = cal.getTime();\r
56                         long cur = date.getTime();\r
57                         \r
58                         Query query = new Query();\r
59                         //query.setRpp(1000); // TODO\r
60                         query.setQuery(text);\r
61                         QueryResult result = twitter.search(query);\r
62                         List<Tweet> tweets = result.getTweets();\r
63                         \r
64                         int count = 0;\r
65                         int hit = 0;\r
66                         int mhit = 0;\r
67                         \r
68                         int index;\r
69                         int mindex = 0;\r
70                         int size = tweets.size();\r
71                         for (index = 0; index < size; index++) {\r
72                                 Tweet tweet = tweets.get(index);\r
73                                 \r
74                                 Date at = tweet.getCreatedAt();\r
75                                 long t = at.getTime();\r
76                                 \r
77                                 String message = tweet.getText();\r
78                                 \r
79                                 if (t < cur - 30 * 60 * 1000){\r
80                                         System.out.println("\81~" + tweet.getFromUser() + " - "\r
81                                                         + tweet.getText() + at);\r
82                                         continue;\r
83                                 }\r
84                                 hit = filter(message);\r
85                                 if (hit <= 0) {\r
86                                         // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
87                                         continue;\r
88                                 }\r
89                                 if (hit > mhit){\r
90                                         hit = mhit;\r
91                                         mindex = index;\r
92                                 }\r
93 \r
94                                 System.out.println("@" + tweet.getFromUser() + " - "\r
95                                                 + tweet.getText() + at);\r
96                                 count++;\r
97                         }\r
98                 \r
99                         String message = "";\r
100                         if (count < 10){\r
101                                 message = "\92x\89\84\82È\82µ " + date.toString();                        \r
102                         }\r
103                         else {\r
104                                 int N = 100;\r
105                                 \r
106                                 String sample = tweets.get(mindex).getText();\r
107                                 sample = CommonUtil.replaceString(sample, "@", "(a)");\r
108                                 sample = StringUtility.parseSubstring(sample, N);\r
109                                 message = sample + " " + date.toString() + " count=" + count;                                                   \r
110                         }\r
111                         System.out.println(message);//TODO\r
112                         Status status = twitter.updateStatus(message);\r
113                 } catch (TwitterException e) {\r
114                         // TODO Auto-generated catch block\r
115                         e.printStackTrace();\r
116                         log.severe(e.toString());\r
117                 }\r
118         }\r
119         \r
120         private static List<String> keywords = null;\r
121 \r
122         public int filter(String text) {\r
123                 if (keywords == null) {\r
124                         keywords = new ArrayList<String>();\r
125                         keywords.add("\92x\89\84");\r
126                         keywords.add("\92x\82ê");\r
127                         keywords.add("\90U\82è\91Ö\82¦");\r
128                         keywords.add("\90U\91Ö");\r
129                         keywords.add("\92â\8e~");\r
130                         keywords.add("\8e\96\8cÌ");\r
131                 }\r
132 \r
133                 int count = 0;\r
134                 for (String keyword : keywords) {\r
135                         if (text.indexOf(keyword) >= 0) {\r
136                                 count++;\r
137                         }\r
138                 }\r
139                 return count;\r
140         }\r
141 }\r