OSDN Git Service

init bot
[traindelaybot/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / f2 / e0c3d16004650011187edd98d8496234
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f2/e0c3d16004650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f2/e0c3d16004650011187edd98d8496234
new file mode 100644 (file)
index 0000000..b63846d
--- /dev/null
@@ -0,0 +1,186 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String consumerKey = req.getParameter("key");\r
+               String consumerSecret = req.getParameter("secret");\r
+               String result = req.getParameter("result");\r
+               if (!CommonUtil.isNull(consumerKey)\r
+                               && !CommonUtil.isNull(consumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
+                       return;\r
+               } else if (!CommonUtil.isNull(result)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               main();\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(consumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+                       \r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       TrainDelayBotServlet.consumerKey = consumerKey;\r
+                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               return;\r
+                       }\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void main() {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(100); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       int count = 0;\r
+                       String sample = null;\r
+                       for (Tweet tweet : tweets) {\r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               if (!filter(message)) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (sample == null){\r
+                                       sample = message;\r
+                               }\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+       \r
+       private List<String> keywords = null;\r
+       \r
+       private boolean filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+               }\r
+\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               return true;\r
+                       }\r
+               }\r
+               return false;\r
+       }       \r
+}\r