1 package com.yuji.tdb.twitter;
\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
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
18 import com.yuji.tdb.common.CommonUtil;
\r
20 public class TwitterUtil {
\r
21 private static TwitterUtil instance = null;
\r
22 private static Object obj = new Object();
\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
35 private TwitterUtil() {
\r
39 public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {
\r
41 String text = "
\8b\9e\95l
\93\8c\96k";
\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
50 Calendar cal = Calendar.getInstance();
\r
51 Date date = cal.getTime();
\r
52 long cur = date.getTime();
\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
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
66 if (t < cur - 30 * 60 * 1000){
\r
69 if (!filter(message)) {
\r
70 //
\92x
\89\84\88È
\8aO
\82Ì
\8f\91\82«
\8d\9e\82Ý
\r
73 if (sample == null){
\r
76 System.out.println("@" + tweet.getFromUser() + " - "
\r
77 + tweet.getText() + at);
\r
81 String message = "";
\r
83 message = "
\92x
\89\84\82È
\82µ " + date.toString();
\r
86 sample = sample.substring(0, 50);
\r
87 sample = CommonUtil.replaceString(sample, "@", "(a)");
\r
88 message = sample + " " + date.toString() + " count=" + count;
\r
90 Status status = twitter.updateStatus(message);
\r
91 } catch (TwitterException e) {
\r
92 // TODO Auto-generated catch block
\r
93 e.printStackTrace();
\r
97 private List<String> keywords = null;
\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
108 for (String keyword : keywords) {
\r
109 if (text.indexOf(keyword) >= 0) {
\r