http://1.latest.traindelaybot.appspot.com/traindelaybot
+[\8b\9e\95l\8b}\8ds\90ü] 00:27
+ \92x\89\84\82È\82µ 2012/03/15 :08
+
\81\9bBigTable
http://www.atmarkit.co.jp/fjava/rensai4/gaej02/gaej02_3.html
!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-11 20:03:35.906
!MESSAGE TrainDelayBot successfully deployed to Google App Engine
+!SESSION 2012-03-15 00:19:48.352 -----------------------------------------------
+eclipse.buildId=I20110613-1736
+java.version=1.6.0_29
+java.vendor=Apple Inc.
+BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=ja_JP
+Framework arguments: -product org.eclipse.epp.package.java.product -keyring /Users/yuji/.eclipse_keyring -showlocation
+Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/yuji/.eclipse_keyring -showlocation
+
+!ENTRY org.eclipse.core.net 1 0 2012-03-15 00:19:54.582
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
+
+!ENTRY com.google.gwt.eclipse.core 2 0 2012-03-15 00:19:59.747
+!MESSAGE Could not check whether the launch configuration "Test" needs the -XstartOnFirstThread argument, assuming it does
+
+!ENTRY com.google.gwt.eclipse.core 2 0 2012-03-15 00:19:59.782
+!MESSAGE Could not check whether the launch configuration "Test" needs the -XstartOnFirstThread argument, assuming it does
+
+!ENTRY com.google.gwt.eclipse.core 2 0 2012-03-15 00:19:59.802
+!MESSAGE Could not check whether the launch configuration "TrainDelayBot" needs the -XstartOnFirstThread argument, assuming it does
+
+!ENTRY com.google.gwt.eclipse.core 2 0 2012-03-15 00:19:59.814
+!MESSAGE Could not check whether the launch configuration "TrainDelayBot" needs the -XstartOnFirstThread argument, assuming it does
+
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-15 00:36:56.145
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine
+
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-15 00:42:14.961
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine
--- /dev/null
+{"http://www.google.com/images/icons/product/moderator-32.png":"cache_12","http://api-directory.googleapis.com/icons/gdata-webmaster-32.png":"cache_10","http://api-directory.googleapis.com/icons/gdata-books-32.png":"cache_3","http://www.google.com/images/icons/product/analytics-32.png":"cache_1","http://www.google.com/images/icons/product/customsearch-32.png":"cache_0","http://api-directory.googleapis.com/icons/gdata-spreadsheet-32.png":"cache_9","http://api-directory.googleapis.com/icons/google_calendar_data_lb32.png":"cache_4","http://api-directory.googleapis.com/icons/search-32.png":"cache_15","http://www.google.com/images/icons/product/translate-32.png":"cache_14","http://api-directory.googleapis.com/icons/gdata-contacts-32.png":"cache_6","http://www.google.com/images/icons/product/projecthosting-32.png":"cache_8","http://api-directory.googleapis.com/icons/gdata-finance-32.png":"cache_7"}
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ //TimeZone.setDefault(TimeZone.getTimeZone("JST")); // TODO \8fê\8f\8a\r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += sample + " " + df.format(date) + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.TimeZone;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ //private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ private DateFormat df = new SimpleDateFormat("HH:mm");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += " " + df.format(date) + " \92x\89\84\82È\82µ"; \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += " " + df.format(date) + " " + sample + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += sample + " " + df.format(date) + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.TimeZone;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += sample + " " + df.format(date) + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ //TimeZone.setDefault(TimeZone.getTimeZone("JST")); // TODO \8fê\8f\8a\r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+ \r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += sample + " " + df.format(date) + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.TimeZone;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ //private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ private DateFormat df = new SimpleDateFormat("HH:mm");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += df.format(date) + " \92x\89\84\82È\82µ"; \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += df.format(date) + " " + sample + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.TimeZone;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ //private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ private DateFormat df = new SimpleDateFormat("HH:mm");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += " " + df.format(date) + " \92x\89\84\82È\82µ"; \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += " " + df.format(date) + sample + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
--- /dev/null
+package com.yuji.tdb.twitter;\r
+\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.TimeZone;\r
+import java.util.logging.Logger;\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.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.Train;\r
+import com.yuji.tdb.db.TrainDao;\r
+import com.yuji.tdb.utility.StringUtility;\r
+\r
+public class TwitterUtil {\r
+ private static final Logger log = Logger\r
+ .getLogger(TwitterUtil.class.getName());\r
+ private static TwitterUtil instance = null;\r
+ private static Object obj = new Object();\r
+ //private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ private DateFormat df = new SimpleDateFormat("HH:mm");\r
+\r
+ public static TwitterUtil getInstance() {\r
+ if (instance == null) {\r
+ synchronized (obj) {\r
+ if (instance == null) {\r
+ instance = new TwitterUtil();\r
+ }\r
+ }\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ private TwitterUtil() {\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
+ }\r
+\r
+ public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\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
+ List<Train> list = getTrainList();\r
+ for (Train train : list){\r
+ twite(twitter, train);\r
+ }\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ log.severe(e.toString());\r
+ }\r
+ }\r
+\r
+ private void twite(Twitter twitter, Train train) throws TwitterException {\r
+ Query query = new Query();\r
+ //query.setRpp(1000); // TODO\r
+ query.setQuery(train.getSearchWord());\r
+ QueryResult result = twitter.search(query);\r
+ List<Tweet> tweets = result.getTweets();\r
+ \r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
+ int count = 0;\r
+ int hit = 0;\r
+ int mhit = 0;\r
+ \r
+ int index;\r
+ int mindex = 0;\r
+ int size = tweets.size();\r
+ for (index = 0; index < size; index++) {\r
+ Tweet tweet = tweets.get(index);\r
+ \r
+ Date at = tweet.getCreatedAt();\r
+ long t = at.getTime();\r
+ \r
+ String message = tweet.getText();\r
+ \r
+ if (t < cur - 30 * 60 * 1000){\r
+ System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ continue;\r
+ }\r
+ hit = filter(message);\r
+ if (hit <= 0) {\r
+ System.out.println("\81¢" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+ continue;\r
+ }\r
+ if (hit > mhit){\r
+ hit = mhit;\r
+ mindex = index;\r
+ }\r
+\r
+ System.out.println("@" + tweet.getFromUser() + " - "\r
+ + tweet.getText() + at);\r
+ count++;\r
+ }\r
+\r
+ String message = "[" + train.getName() + "] ";\r
+ if (count < train.getCount()){\r
+ message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ }\r
+ else {\r
+ int N = 100;\r
+ \r
+ String sample = tweets.get(mindex).getText();\r
+ sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+ sample = StringUtility.parseSubstring(sample, N);\r
+ message += sample + " " + df.format(date) + " count=" + count; \r
+ }\r
+ System.out.println(message); //TODO\r
+ Status status = twitter.updateStatus(message); //TODO\r
+ }\r
+ \r
+ private List<Train> getTrainList(){\r
+ TrainDao dao = TrainDao.getInstance();\r
+ List<Train> list = dao.search();\r
+ if (list.size() <= 0){\r
+ Train train;\r
+ \r
+ train = new Train("\8b\9e\95l\93\8c\96k\90ü", "\8b\9e\95l\93\8c\96k", 5);\r
+ dao.put(train);\r
+ train = new Train("\93\8c\8aC\93¹\90ü", "\93\8c\8aC\93¹", 5);\r
+ dao.put(train);\r
+ train = new Train("\8b\9e\95l\8b}\8ds\90ü", "\8b\9e\8b}", 5);\r
+ dao.put(train);\r
+ list = dao.search();\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ private static List<String> keywords = null;\r
+\r
+ public int 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
+ keywords.add("\90U\91Ö");\r
+ keywords.add("\92â\8e~");\r
+ keywords.add("\8e\96\8cÌ");\r
+ }\r
+\r
+ int count = 0;\r
+ for (String keyword : keywords) {\r
+ if (text.indexOf(keyword) >= 0) {\r
+ count++;\r
+ }\r
+ }\r
+ return count;\r
+ }\r
+}\r
stopped,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1331464966280
stopped,bundle,org.eclipse.emf.edit.ui,2.7.0.v20110606-0949,"org.eclipse.emf.edit.ui",1331464966280
stopped,bundle,org.eclipse.gef,3.7.0.v20110407-2050,"org.eclipse.gef",1331464966280
+activated,perspective,org.eclipse.jdt.ui,,"org.eclipse.jdt.ui.JavaPerspective",1331738400402
+started,bundle,org.eclipse.osgi,3.7.0.v20110613,"org.eclipse.osgi",1331738400403
+started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1331738400403
+started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1331738400403
+started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1331738400403
+started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1331738400403
+started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1331738400403
+started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1331738400403
+started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1331738400403
+started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1331738400403
+started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1331738400403
+started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1331738400403
+started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1331738400403
+started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1331738400403
+started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1331738400403
+started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1331738400403
+started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1331738400403
+started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1331738400403
+started,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1331738400403
+started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1331738400403
+started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1331738400403
+started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1331738400403
+started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1331738400403
+started,bundle,org.eclipse.equinox.ds,1.3.0.v20110502,"org.eclipse.equinox.ds",1331738400403
+started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1331738400403
+started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1331738400403
+started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1331738400403
+started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1331738400403
+started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1331738400403
+started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1331738400403
+started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1331738400403
+started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1331738400403
+started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1331738400403
+started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1331738400403
+started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1331738400403
+started,bundle,org.eclipse.equinox.preferences,3.4.0.v20110502,"org.eclipse.equinox.preferences",1331738400403
+started,bundle,org.eclipse.equinox.registry,3.5.100.v20110502,"org.eclipse.equinox.registry",1331738400403
+started,bundle,org.eclipse.equinox.security,1.1.0.v20110502,"org.eclipse.equinox.security",1331738400403
+started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1331738400403
+started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1331738400403
+started,bundle,org.eclipse.jdt.apt.core,3.3.500.v20110420-1015,"org.eclipse.jdt.apt.core",1331738400403
+started,bundle,org.eclipse.jdt.apt.pluggable.core,1.0.400.v20110305-1450,"org.eclipse.jdt.apt.pluggable.core",1331738400403
+started,bundle,org.eclipse.jdt.core,3.7.0.v_B61,"org.eclipse.jdt.core",1331738400403
+started,bundle,org.eclipse.jdt.core.manipulation,1.4.0.v20110505-0800,"org.eclipse.jdt.core.manipulation",1331738400403
+started,bundle,org.eclipse.jdt.launching,3.6.0.v20110509,"org.eclipse.jdt.launching",1331738400403
+started,bundle,org.eclipse.jdt.launching.macosx,3.2.100.v20110509,"org.eclipse.jdt.launching.macosx",1331738400403
+started,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1331738400403
+started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1331738400403
+started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1331738400403
+started,bundle,org.eclipse.ltk.core.refactoring,3.5.200.v20110505-0800,"org.eclipse.ltk.core.refactoring",1331738400403
+started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1331738400403
+started,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1331738400403
+started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.core",1331738400403
+started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1331738400403
+started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1331738400403
+started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1331738400403
+started,bundle,org.eclipse.mylyn.context.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.core",1331738400403
+started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1331738400403
+started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1331738400403
+started,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1331738400403
+started,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1331738400403
+started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1331738400403
+started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1331738400403
+started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1331738400403
+started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1331738400403
+started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1331738400403
+started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1331738400403
+started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1331738400403
+started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1331738400403
+started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1331738400403
+started,bundle,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.ide",1331738400403
+started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1331738400403
+started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1331738400403
+started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1331738400403
+started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1331738400403
+started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1331738400403
+started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1331738400403
+started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1331738400403
+started,bundle,org.eclipse.wb.discovery.core,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.core",1331738400403
+started,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1331738400403
+started,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1331738400403
+started,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1331738400403
+started,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1331738400403
+started,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1331738400403
+started,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1331738400404
+started,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1331738400404
+started,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1331738400404
+started,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1331738400404
+started,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1331738400404
+started,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1331738400404
+started,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1331738400404
+started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1331738400404
+started,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1331738400404
+started,bundle,org.eclipse.wb.core.lib,1.2.0.r37x201112290923,"org.eclipse.wb.core.lib",1331738400404
+os,sysinfo,,,"macosx",1331738400406
+arch,sysinfo,,,"x86_64",1331738400406
+ws,sysinfo,,,"cocoa",1331738400406
+locale,sysinfo,,,"ja_JP",1331738400406
+processors,sysinfo,,,"8",1331738400406
+java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1331738400406
+java.runtime.version,sysinfo,,,"1.6.0_29-b11-402-11D50d",1331738400406
+java.specification.name,sysinfo,,,"Java Platform API Specification",1331738400406
+java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1331738400406
+java.specification.version,sysinfo,,,"1.6",1331738400406
+java.vendor,sysinfo,,,"Apple Inc.",1331738400406
+java.version,sysinfo,,,"1.6.0_29",1331738400406
+java.vm.info,sysinfo,,,"mixed mode",1331738400406
+java.vm.name,sysinfo,,,"Java HotSpot(TM) 64-Bit Server VM",1331738400406
+java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1331738400406
+java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1331738400406
+java.vm.specification.version,sysinfo,,,"1.0",1331738400406
+java.vm.vendor,sysinfo,,,"Apple Inc.",1331738400406
+java.vm.version,sysinfo,,,"20.4-b02-402",1331738400406
+started,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1331738400408
+started,bundle,org.eclipse.wb.discovery.ui,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.ui",1331738400545
+started,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1331738400557
+started,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1331738400562
+opened,view,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.views.ProblemView",1331738401833
+started,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1331738402120
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1331738426543
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1331738428362
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331738429693
+started,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1331738430056
+started,bundle,org.eclipse.jdt.debug,3.7.0.v20110509,"org.eclipse.jdt.debug",1331738430247
+started,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1331738430323
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738433885
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738476975
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738482636
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738669880
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738683989
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738726127
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1331738757932
+started,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1331738783599
+started,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1331738783645
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331738784315
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738786028
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738787875
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1331738788060
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331738792578
+started,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1331738798107
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738801274
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738857703
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738868027
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738906501
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1331738915982
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1331738917026
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331738928422
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1331738941950
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1331738953538
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1331738977322
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1331738980503
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738989422
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331738999064
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331738999901
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331739012835
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739027622
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739034209
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739039621
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739047097
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1331739073080
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739078472
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739090944
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739106285
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739166384
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1331739221884
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739224199
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739224275
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739226473
+opened,view,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.DebugView",1331739231758
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739231799
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1331739241940
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1331739244108
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739259167
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1331739267527
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1331739268741
4286473667.index
156905802.index
3712507179.index
-272178059.index
4210253391.index
+272178059.index
2487942853.index
545044415.index
3954040986.index
2012-03-11 00:50:50,092 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog
2012-03-11 02:09:03,359 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog
2012-03-11 09:07:32,089 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog
+2012-03-15 00:19:58,936 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog
import java.util.Calendar;\r
import java.util.Date;\r
import java.util.List;\r
+import java.util.TimeZone;\r
import java.util.logging.Logger;\r
\r
import twitter4j.Query;\r
.getLogger(TwitterUtil.class.getName());\r
private static TwitterUtil instance = null;\r
private static Object obj = new Object();\r
- private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ //private DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
+ private DateFormat df = new SimpleDateFormat("HH:mm");\r
\r
public static TwitterUtil getInstance() {\r
if (instance == null) {\r
}\r
\r
private TwitterUtil() {\r
- //TimeZone.setDefault(TimeZone.getTimeZone("JST")); // TODO \8fê\8f\8a\r
+ df.setTimeZone(TimeZone.getTimeZone("JST")); \r
}\r
\r
public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
}\r
\r
private void twite(Twitter twitter, Train train) throws TwitterException {\r
- Calendar cal = Calendar.getInstance();\r
- Date date = cal.getTime();\r
- long cur = date.getTime();\r
- \r
Query query = new Query();\r
//query.setRpp(1000); // TODO\r
query.setQuery(train.getSearchWord());\r
QueryResult result = twitter.search(query);\r
List<Tweet> tweets = result.getTweets();\r
\r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ long cur = date.getTime();\r
+\r
int count = 0;\r
int hit = 0;\r
int mhit = 0;\r
\r
String message = tweet.getText();\r
\r
- if (t < cur - 30 * 60 * 1000){\r
+ if (t < cur - 5 * 60 * 1000){\r
System.out.println("\81~" + tweet.getFromUser() + " - "\r
+ tweet.getText() + at);\r
continue;\r
\r
String message = "[" + train.getName() + "] ";\r
if (count < train.getCount()){\r
- message += "\92x\89\84\82È\82µ " + df.format(date); \r
+ message += df.format(date) + " \92x\89\84\82È\82µ"; \r
}\r
else {\r
int N = 100;\r
String sample = tweets.get(mindex).getText();\r
sample = CommonUtil.replaceString(sample, "@", "(a)");\r
sample = StringUtility.parseSubstring(sample, N);\r
- message += sample + " " + df.format(date) + " count=" + count; \r
+ message += df.format(date) + " " + sample + " count=" + count; \r
}\r
System.out.println(message); //TODO\r
Status status = twitter.updateStatus(message); //TODO\r
-<!-- Indices written at Sun, 11 Mar 2012 10:58:19 UTC -->
+<!-- Indices written at Wed, 14 Mar 2012 15:35:34 UTC -->
<datastore-indexes/>