OSDN Git Service

3e5a385d6c776a10968e0dd5722cab12d857617f
[traindelaybot/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / 76 / 40c8ae1103650011187edd98d8496234
1 package com.yuji.tdb;\r
2 \r
3 import java.io.IOException;\r
4 import java.util.Calendar;\r
5 import java.util.Date;\r
6 import java.util.List;\r
7 \r
8 import javax.servlet.http.HttpServlet;\r
9 import javax.servlet.http.HttpServletRequest;\r
10 import javax.servlet.http.HttpServletResponse;\r
11 \r
12 import twitter4j.Query;\r
13 import twitter4j.QueryResult;\r
14 import twitter4j.Status;\r
15 import twitter4j.Tweet;\r
16 import twitter4j.Twitter;\r
17 import twitter4j.TwitterException;\r
18 import twitter4j.TwitterFactory;\r
19 import twitter4j.auth.AccessToken;\r
20 import twitter4j.auth.OAuthAuthorization;\r
21 import twitter4j.auth.RequestToken;\r
22 import twitter4j.conf.Configuration;\r
23 import twitter4j.conf.ConfigurationBuilder;\r
24 \r
25 import com.yuji.tdb.common.CommonUtil;\r
26 \r
27 @SuppressWarnings("serial")\r
28 public class TrainDelayBotServlet extends HttpServlet {\r
29         private static RequestToken requestToken = null;\r
30         private static AccessToken accessToken = null;\r
31         private static String consumerKey = null;\r
32         private static String consumerSecret = null;\r
33 \r
34         public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
35                         throws IOException {\r
36                 resp.setContentType("text/plain");\r
37                 resp.getWriter().println(" traindelaybot Hello, world");\r
38 \r
39                 String consumerKey = req.getParameter("key");\r
40                 String consumerSecret = req.getParameter("secret");\r
41                 String result = req.getParameter("result");\r
42                 if (!CommonUtil.isNull(consumerKey)\r
43                                 && !CommonUtil.isNull(consumerSecret)) {\r
44                         setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
45                         return;\r
46                 } else if (!CommonUtil.isNull(result)) {\r
47                         resultOAuthAuthorization();\r
48                         return;\r
49                 }\r
50 \r
51                 main();\r
52         }\r
53 \r
54         private void setOAuthAuthorization(HttpServletRequest req,\r
55                         HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
56                 try {\r
57                         ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
58 \r
59                         confBuilder.setDebugEnabled(true);\r
60                         confBuilder.setOAuthConsumerKey(consumerKey);\r
61                         confBuilder.setOAuthConsumerSecret(consumerSecret);\r
62                         Configuration conf = confBuilder.build();\r
63 \r
64                         String url = req.getRequestURL().toString();\r
65                         \r
66                         OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
67                         // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
68                         // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
69                         String callbackURL = url + "?result=yes";\r
70                         // RequestToken requestToken =\r
71                         // oauth.getOAuthRequestToken(callbackURL);\r
72                         requestToken = oauth.getOAuthRequestToken(callbackURL);\r
73                         // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
74                         // sessionScope("RequestToken", requestToken);\r
75                         // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
76 \r
77                         TrainDelayBotServlet.consumerKey = consumerKey;\r
78                         TrainDelayBotServlet.consumerSecret = consumerSecret;\r
79 \r
80                         resp.sendRedirect(requestToken.getAuthenticationURL());\r
81                 } catch (TwitterException e) {\r
82                         // TODO Auto-generated catch block\r
83                         e.printStackTrace();\r
84                 } catch (IOException e) {\r
85                         // TODO Auto-generated catch block\r
86                         e.printStackTrace();\r
87                 }\r
88         }\r
89 \r
90         private void resultOAuthAuthorization() {\r
91                 try {\r
92                         // Twitter twitter = new TwitterFactory().getInstance();\r
93                         if (requestToken == null || CommonUtil.isNull(consumerKey)\r
94                                         || CommonUtil.isNull(consumerSecret)) {\r
95                                 return;\r
96                         }\r
97                         // String tokenKey = requestToken.getToken();\r
98                         // String tokenSecret = requestToken.getTokenSecret();\r
99 \r
100                         ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
101                         confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
102                                         .setOAuthConsumerSecret(consumerSecret);\r
103                         TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
104                         Twitter twitter = factory.getInstance();\r
105 \r
106                         accessToken = twitter.getOAuthAccessToken(requestToken);\r
107                 } catch (TwitterException e) {\r
108                         // TODO Auto-generated catch block\r
109                         e.printStackTrace();\r
110                 }\r
111         }\r
112 \r
113         private void main() {\r
114 \r
115                 String text = "\8b\9e\95l\93\8c\96k";\r
116 \r
117                 try {\r
118                         ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
119                         confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
120                                         .setOAuthConsumerSecret(consumerSecret);\r
121                         TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
122                         Twitter twitter = factory.getInstance(accessToken);\r
123 \r
124                         Calendar cal = Calendar.getInstance();\r
125                         Date date = cal.getTime();\r
126                         long cur = date.getTime();\r
127                         \r
128                         Query query = new Query();\r
129                         query.setRpp(100); // TODO\r
130                         query.setQuery(text);\r
131                         QueryResult result = twitter.search(query);\r
132                         List<Tweet> tweets = result.getTweets();\r
133                         for (Tweet tweet : tweets) {\r
134                                 Date at = tweet.getCreatedAt();\r
135                                 long t = at.getTime();\r
136                                 \r
137                                 if (t < cur - 10 * 60 * 1000){\r
138                                         continue;\r
139                                 }\r
140                                 System.out.println("@" + tweet.getFromUser() + " - "\r
141                                                 + tweet.getText() + at);\r
142                         }\r
143                 \r
144                         String message = "\83e\83X\83g " + date.toString();\r
145                         Status status = twitter.updateStatus(message);\r
146                 } catch (TwitterException e) {\r
147                         // TODO Auto-generated catch block\r
148                         e.printStackTrace();\r
149                 }\r
150         }\r
151 }\r