OSDN Git Service

plug in
[traindelaybot/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / dd / 2017ce98146500111a4595e8dbbae88d
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 = null;\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                                 count++;\r
79                         }\r
80                 \r
81                         String message = "";\r
82                         if (count < 10){\r
83                                 message = "\92x\89\84\82È\82µ " + date.toString();                        \r
84                         }\r
85                         else {\r
86                                 sample = sample.substring(0, 50);\r
87                                 sample = CommonUtil.replaceString(sample, "@", "(a)");\r
88                                 message = sample + " " + date.toString() + " count=" + count;                                                   \r
89                         }\r
90                         Status status = twitter.updateStatus(message);\r
91                 } catch (TwitterException e) {\r
92                         // TODO Auto-generated catch block\r
93                         e.printStackTrace();\r
94                 }\r
95         }\r
96         \r
97         private List<String> keywords = null;\r
98 \r
99         public boolean filter(String text) {\r
100                 if (keywords == null) {\r
101                         keywords = new ArrayList<String>();\r
102                         keywords.add("\92x\89\84");\r
103                         keywords.add("\92x\82ê");\r
104                         keywords.add("\90U\82è\91Ö\82¦");\r
105                         keywords.add("\92â");\r
106                 }\r
107 \r
108                 for (String keyword : keywords) {\r
109                         if (text.indexOf(keyword) >= 0) {\r
110                                 return true;\r
111                         }\r
112                 }\r
113                 return false;\r
114         }\r
115 }\r