OSDN Git Service

init bot
[traindelaybot/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / 69 / c04815ae136500111a4595e8dbbae88d
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 \r
8 import twitter4j.Query;\r
9 import twitter4j.QueryResult;\r
10 import twitter4j.Status;\r
11 import twitter4j.Tweet;\r
12 import twitter4j.Twitter;\r
13 import twitter4j.TwitterException;\r
14 import twitter4j.TwitterFactory;\r
15 import twitter4j.auth.AccessToken;\r
16 import twitter4j.conf.ConfigurationBuilder;\r
17 \r
18 import com.yuji.tdb.common.CommonUtil;\r
19 \r
20 public class TwitterUtil {\r
21         private static TwitterUtil instance = null;\r
22         private static Object obj = new Object();\r
23 \r
24         public static TwitterUtil getInstance() {\r
25                 if (instance == null) {\r
26                         synchronized (obj) {\r
27                                 if (instance == null) {\r
28                                         instance = new TwitterUtil();\r
29                                 }\r
30                         }\r
31                 }\r
32                 return instance;\r
33         }\r
34 \r
35         private TwitterUtil() {\r
36 \r
37         }\r
38 \r
39         public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
40 \r
41                 String text = "\8b\9e\95l\93\8c\96k";\r
42 \r
43                 try {\r
44                         ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
45                         confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
46                                         .setOAuthConsumerSecret(consumerSecret);\r
47                         TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
48                         Twitter twitter = factory.getInstance(accessToken);\r
49 \r
50                         Calendar cal = Calendar.getInstance();\r
51                         Date date = cal.getTime();\r
52                         long cur = date.getTime();\r
53                         \r
54                         Query query = new Query();\r
55                         query.setRpp(100); // TODO\r
56                         query.setQuery(text);\r
57                         QueryResult result = twitter.search(query);\r
58                         List<Tweet> tweets = result.getTweets();\r
59                         int count = 0;\r
60                         String sample = "<none>";\r
61                         for (Tweet tweet : tweets) {\r
62                                 Date at = tweet.getCreatedAt();\r
63                                 long t = at.getTime();\r
64                                 String message = tweet.getText();\r
65                                 \r
66                                 if (t < cur - 30 * 60 * 1000){\r
67                                         continue;\r
68                                 }\r
69                                 if (!filter(message)) {\r
70                                         // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
71                                         continue;\r
72                                 }\r
73                                 if (sample == null){\r
74                                         sample = message;\r
75                                 }\r
76                                 System.out.println("@" + tweet.getFromUser() + " - "\r
77                                                 + tweet.getText() + at);\r
78                         }\r
79                 \r
80                         String message = "";\r
81                         if (count < 1){\r
82                                 message = "\92x\89\84\82È\82µ " + date.toString();                        \r
83                         }\r
84                         else {\r
85                                 sample = CommonUtil.replaceString(sample, "@", "(a)");\r
86                                 message = sample + " " + date.toString() + "count=" + count;                                                    \r
87                         }\r
88                         Status status = twitter.updateStatus(message);\r
89                 } catch (TwitterException e) {\r
90                         // TODO Auto-generated catch block\r
91                         e.printStackTrace();\r
92                 }\r
93         }\r
94         \r
95         private List<String> keywords = null;\r
96 \r
97         public boolean filter(String text) {\r
98                 if (keywords == null) {\r
99                         keywords = new ArrayList<String>();\r
100                         keywords.add("\92x\89\84");\r
101                         keywords.add("\92x\82ê");\r
102                         keywords.add("\90U\82è\91Ö\82¦");\r
103                         keywords.add("\92â");\r
104                 }\r
105 \r
106                 for (String keyword : keywords) {\r
107                         if (text.indexOf(keyword) >= 0) {\r
108                                 return true;\r
109                         }\r
110                 }\r
111                 return false;\r
112         }\r
113 }\r