プロジェクト

全般

プロフィール

ダウンロード (2.22 KB) 統計
| ブランチ: | タグ: | リビジョン:

github / src / com / mizo0203 / twitter / timeline / talker / TwitterTimelineTalker.java @ 79a6e367

1
package com.mizo0203.twitter.timeline.talker;
2

    
3
import java.util.Locale;
4
import twitter4j.StallWarning;
5
import twitter4j.Status;
6
import twitter4j.StatusDeletionNotice;
7
import twitter4j.StatusListener;
8
import twitter4j.TwitterStream;
9
import twitter4j.TwitterStreamFactory;
10
import twitter4j.conf.Configuration;
11

    
12
public class TwitterTimelineTalker {
13

    
14
  /**
15
   * ISO 639 言語コード - 日本語 (ja)
16
   */
17
  public static final String LANG_JA = Locale.JAPAN.getLanguage();
18

    
19
  private Talker.YukkuriVoice mYukkuriVoice = Talker.YukkuriVoice.REIMU;
20
  private final TwitterStream mTwitterStream;
21
  private final Talker mTalker;
22

    
23
  public TwitterTimelineTalker(Configuration configuration, Talker talker) {
24
    mTwitterStream = new TwitterStreamFactory(configuration).getInstance();
25
    mTwitterStream.addListener(new OnStatusEvent());
26
    mTalker = talker;
27
  }
28

    
29
  public void start() {
30
    // OnStatusEvent に Twitter タイムラインが通知される
31
    mTwitterStream.user();
32
  }
33

    
34
  private class OnStatusEvent implements StatusListener {
35

    
36
    public void onStatus(final Status status) {
37
      if (!LANG_JA.equalsIgnoreCase(status.getLang())) {
38
        return;
39
      }
40

    
41
      final StringBuffer buffer = new StringBuffer();
42
      buffer.append(status.getUser().getName());
43
      buffer.append("さんから、");
44
      buffer.append(status.getText());
45
      System.out.println(buffer);
46

    
47
      mTalker.talkAsync(UrlUtil.convURLEmpty(buffer).replaceAll("\n", "。"), mYukkuriVoice);
48

    
49
      // 読み上げは、霊夢と魔理沙が交互に行なう
50
      if (mYukkuriVoice == Talker.YukkuriVoice.REIMU) {
51
        mYukkuriVoice = Talker.YukkuriVoice.MARISA;
52
      } else {
53
        mYukkuriVoice = Talker.YukkuriVoice.REIMU;
54
      }
55

    
56
    }
57

    
58
    public void onDeletionNotice(StatusDeletionNotice sdn) {
59
      System.err.println("onDeletionNotice.");
60
    }
61

    
62
    public void onTrackLimitationNotice(int i) {
63
      System.err.println("onTrackLimitationNotice.(" + i + ")");
64
    }
65

    
66
    public void onScrubGeo(long lat, long lng) {
67
      System.err.println("onScrubGeo.(" + lat + ", " + lng + ")");
68
    }
69

    
70
    public void onException(Exception excptn) {
71
      System.err.println("onException.");
72
    }
73

    
74
    @Override
75
    public void onStallWarning(StallWarning arg0) {}
76
  }
77

    
78
}
(4-4/5)