3 import java.util.Calendar;
\r
4 import java.util.Date;
\r
5 import java.util.List;
\r
7 import twitter4j.QueryResult;
\r
8 import twitter4j.Tweet;
\r
9 import twitter4j.TwitterAdapter;
\r
10 import twitter4j.TwitterException;
\r
11 import twitter4j.TwitterMethod;
\r
12 import android.content.ContentValues;
\r
13 import android.net.Uri;
\r
15 import com.td.db.Keyword;
\r
16 import com.td.service.TrainDelayedServiceImpl;
\r
17 import com.td.utility.DateUtil;
\r
18 import com.td.utility.Debug;
\r
20 public class TrainTwitterAdapter extends TwitterAdapter {
\r
21 private TrainDelayedServiceImpl context;
\r
22 private Calendar cal;
\r
24 public TrainTwitterAdapter(TrainDelayedServiceImpl context) {
\r
25 this.context = context;
\r
28 public void setCalender(Calendar cal) {
\r
33 public void searched(QueryResult result) {
\r
34 super.searched(result);
\r
37 long min = Long.MAX_VALUE;
\r
40 Date minDate = null;
\r
41 Date maxDate = null;
\r
42 Date curDate = cal.getTime();
\r
44 long cur = curDate.getTime();
\r
45 long from = cur - DateUtil.LEN * 60 * 1000;
\r
49 List<Tweet> tweets = result.getTweets();
\r
50 for (Tweet tweet : tweets){
\r
51 String text = tweet.getText();
\r
52 Date at = tweet.getCreatedAt();
\r
53 long l = at.getTime();
\r
59 //Debug.d(this, "NO MATCH:" + text);
\r
71 //Debug.d(this, at.toString() + " " + text);
\r
75 if (true/*count > 0*/){
\r
77 if (minDate != null && maxDate != null){
\r
78 diff = DateUtil.LEN;
\r
82 // compareTo("
\8b\9e\95l
\93\8c\96k")
\82Ì
\92l
\82ðDB
\82©
\82ç
\8eæ
\93¾
\r
83 // Scheduler
\82É
\83L
\83\83\83b
\83V
\83\85\82·
\82é
\82±
\82Æ
\r
85 String query = result.getQuery();
\r
87 if (query.compareTo("
\8b\9e\95l
\93\8c\96k") == 0){
\r
90 else if (query.compareTo("
\93\8c\8aC
\93¹") == 0){
\r
93 else if (query.compareTo("
\8b\9e\8b}") == 0){
\r
97 if (minDate != null && maxDate != null){
\r
98 Debug.d(this, minDate.toString());
\r
99 Debug.d(this, maxDate.toString());
\r
101 Debug.d(this, "routeId=" + routeId);
\r
102 Debug.d(this, "diff=" + diff);
\r
103 Debug.d(this, "count=" + count);
\r
107 //
\8eæ
\93¾
\8e¸
\94s
\8e\9e\82Éinsert
\82·
\82é
\82©
\r
108 insert(routeId, diff, count, 0);
\r
111 catch (Exception e){
\r
112 Debug.d(this, null, e);
\r
116 private boolean filter(String text) {
\r
117 List<Keyword> keywords = context.getKeywords();
\r
118 if (keywords == null){
\r
122 for (Keyword keyword : keywords) {
\r
123 if (text.indexOf(keyword.getText()) >= 0) {
\r
130 private void insert(int routeId, long diff, int count, int status) {
\r
131 Date date = cal.getTime();
\r
133 int ymd = DateUtil.getYmd(date);
\r
134 int hm = DateUtil.getHm(date);
\r
135 int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
\r
137 Debug.d(this, "" + ymd + " " + hm + " " + w);
\r
139 ContentValues values = new ContentValues();
\r
140 values.put(HistoryContentProvider.Fields.ROUTE_ID, routeId);
\r
141 values.put(HistoryContentProvider.Fields.YMD, ymd);
\r
142 values.put(HistoryContentProvider.Fields.HM, hm);
\r
143 values.put(HistoryContentProvider.Fields.WEEK, w);
\r
144 values.put(HistoryContentProvider.Fields.PERIOD, diff);
\r
145 values.put(HistoryContentProvider.Fields.NUM, count);
\r
146 values.put(HistoryContentProvider.Fields.STATUS, status);
\r
148 Uri uri = context.getContentResolver().insert(
\r
149 HistoryContentProvider.CONTENT_URI, values);
\r
150 Debug.d(this, uri.toString());
\r
154 public void onException(TwitterException e, TwitterMethod method) {
\r
155 Debug.d(this, null, e);
\r