atig 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.travis.yml +3 -2
  4. data/Gemfile +2 -0
  5. data/README.mkdn +2 -0
  6. data/Rakefile +0 -6
  7. data/atig.gemspec +21 -20
  8. data/bin/console +14 -0
  9. data/bin/setup +7 -0
  10. data/{bin → exe}/atig +0 -0
  11. data/lib/atig/agent/agent.rb +4 -4
  12. data/lib/atig/agent/dm.rb +4 -4
  13. data/lib/atig/agent/following.rb +3 -3
  14. data/lib/atig/agent/list.rb +2 -2
  15. data/lib/atig/agent/list_status.rb +6 -6
  16. data/lib/atig/agent/stream_follow.rb +2 -2
  17. data/lib/atig/agent/user_stream.rb +3 -3
  18. data/lib/atig/basic_twitter.rb +1 -3
  19. data/lib/atig/bitly.rb +1 -1
  20. data/lib/atig/channel/channel.rb +1 -1
  21. data/lib/atig/channel/list.rb +3 -3
  22. data/lib/atig/channel/retweet.rb +1 -1
  23. data/lib/atig/channel/timeline.rb +1 -1
  24. data/lib/atig/command/autofix.rb +4 -4
  25. data/lib/atig/command/destroy.rb +1 -1
  26. data/lib/atig/command/dm.rb +2 -2
  27. data/lib/atig/command/favorite.rb +1 -1
  28. data/lib/atig/command/info.rb +2 -2
  29. data/lib/atig/command/reply.rb +2 -2
  30. data/lib/atig/command/retweet.rb +2 -2
  31. data/lib/atig/command/search.rb +2 -2
  32. data/lib/atig/command/status.rb +3 -3
  33. data/lib/atig/command/user.rb +3 -3
  34. data/lib/atig/command/version.rb +3 -3
  35. data/lib/atig/db/followings.rb +5 -6
  36. data/lib/atig/db/statuses.rb +12 -10
  37. data/lib/atig/db/transaction.rb +1 -1
  38. data/lib/atig/gateway/channel.rb +1 -2
  39. data/lib/atig/gateway/session.rb +13 -13
  40. data/lib/atig/http.rb +4 -4
  41. data/lib/atig/ifilter/expand_url.rb +1 -1
  42. data/lib/atig/ifilter/retweet.rb +1 -1
  43. data/lib/atig/ifilter/retweet_time.rb +1 -1
  44. data/lib/atig/ifilter/sanitize.rb +1 -1
  45. data/lib/atig/ifilter/strip.rb +1 -1
  46. data/lib/atig/ifilter/xid.rb +1 -1
  47. data/lib/atig/oauth.rb +3 -3
  48. data/lib/atig/ofilter/escape_url.rb +1 -1
  49. data/lib/atig/ofilter/footer.rb +1 -1
  50. data/lib/atig/ofilter/geo.rb +1 -1
  51. data/lib/atig/ofilter/short_url.rb +1 -1
  52. data/lib/atig/option.rb +1 -1
  53. data/lib/atig/optparse.rb +22 -11
  54. data/lib/atig/search.rb +4 -2
  55. data/lib/atig/stream.rb +1 -1
  56. data/lib/atig/twitter.rb +5 -4
  57. data/lib/atig/update_checker.rb +2 -2
  58. data/lib/atig/url_escape.rb +1 -1
  59. data/lib/atig/version.rb +1 -1
  60. data/lib/memory_profiler.rb +1 -1
  61. data/spec/command/autofix_spec.rb +7 -8
  62. data/spec/command/destroy_spec.rb +12 -13
  63. data/spec/command/dm_spec.rb +5 -6
  64. data/spec/command/favorite_spec.rb +11 -12
  65. data/spec/command/limit_spec.rb +6 -7
  66. data/spec/command/location_spec.rb +4 -5
  67. data/spec/command/name_spec.rb +2 -3
  68. data/spec/command/option_spec.rb +28 -29
  69. data/spec/command/refresh_spec.rb +3 -4
  70. data/spec/command/reply_spec.rb +22 -23
  71. data/spec/command/retweet_spec.rb +17 -18
  72. data/spec/command/spam_spec.rb +4 -5
  73. data/spec/command/status_spec.rb +19 -20
  74. data/spec/command/thread_spec.rb +20 -21
  75. data/spec/command/time_spec.rb +18 -21
  76. data/spec/command/uptime_spec.rb +17 -18
  77. data/spec/command/user_info_spec.rb +13 -16
  78. data/spec/command/user_spec.rb +13 -14
  79. data/spec/command/version_spec.rb +25 -29
  80. data/spec/command/whois_spec.rb +25 -26
  81. data/spec/command_helper.rb +2 -2
  82. data/spec/db/followings_spec.rb +22 -23
  83. data/spec/db/listenable_spec.rb +2 -3
  84. data/spec/db/lists_spec.rb +16 -17
  85. data/spec/db/roman_spec.rb +3 -5
  86. data/spec/db/sized_uniq_array_spec.rb +13 -14
  87. data/spec/db/statuses_spec.rb +69 -70
  88. data/spec/ifilter/expand_url_spec.rb +18 -20
  89. data/spec/ifilter/retweet_spec.rb +4 -5
  90. data/spec/ifilter/retweet_time_spec.rb +4 -5
  91. data/spec/ifilter/sanitize_spec.rb +5 -6
  92. data/spec/ifilter/sid_spec.rb +6 -7
  93. data/spec/ifilter/strip_spec.rb +3 -4
  94. data/spec/ifilter/tid_spec.rb +6 -7
  95. data/spec/levenshtein_spec.rb +2 -3
  96. data/spec/ofilter/escape_url_spec.rb +13 -14
  97. data/spec/ofilter/footer_spec.rb +10 -11
  98. data/spec/ofilter/geo_spec.rb +12 -13
  99. data/spec/ofilter/short_url_spec.rb +28 -29
  100. data/spec/option_spec.rb +23 -24
  101. data/spec/sized_hash_spec.rb +5 -6
  102. data/spec/spec_helper.rb +8 -6
  103. data/spec/update_checker_spec.rb +14 -15
  104. metadata +9 -32
  105. data/docs/_static/allow.png +0 -0
  106. data/docs/_static/emacs.png +0 -0
  107. data/docs/_static/irc_setting.png +0 -0
  108. data/docs/_static/irssi.png +0 -0
  109. data/docs/_static/limechat.png +0 -0
  110. data/docs/_static/limechat_s.png +0 -0
  111. data/docs/_static/oauth_channel.png +0 -0
  112. data/docs/_static/screenshot.png +0 -0
  113. data/docs/_static/structure.png +0 -0
  114. data/docs/_static/verify.png +0 -0
  115. data/docs/changelog.rst +0 -233
  116. data/docs/commandline_options.rst +0 -21
  117. data/docs/commands.rst +0 -84
  118. data/docs/conf.py +0 -194
  119. data/docs/config.rst +0 -159
  120. data/docs/feature.rst +0 -41
  121. data/docs/hacking_guide.rst +0 -43
  122. data/docs/index.rst +0 -102
  123. data/docs/irc.rst +0 -31
  124. data/docs/options.rst +0 -76
  125. data/docs/quickstart.rst +0 -96
  126. data/docs/resize.sh +0 -7
  127. data/docs/tiarra.rst +0 -2
  128. data/docs/tig.rst +0 -21
  129. data/requirements.txt +0 -5
@@ -1,41 +0,0 @@
1
- atig.rbの特徴
2
- ==============================
3
-
4
- 主な機能
5
- ------------------------------
6
- * フレンドタイムライン/DM/Mentionの取得
7
- * OAuthによる認証
8
- * ListsによるFollowingの分類
9
- * 公式RT/コメント付き非公式RT
10
- * IRCクライアントならなんでも使える柔軟性
11
-
12
- 動作環境
13
- ------------------------------
14
- 開発時には以下の環境でテストしています。
15
-
16
- * MacOS 10.5(Leopard) + Ruby 1.9
17
- * MacOS 10.6(Snow Leopard) + Ruby 1.9
18
- * CentOS 5.3 + Ruby 1.8
19
-
20
- スクリーンショット
21
- ------------------------------
22
-
23
- `Lime Chat`_
24
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
- .. _Lime Chat: http://limechat.net/
26
-
27
- .. image:: _static/limechat.png
28
-
29
- `Irssi`_
30
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31
- .. _Irssi: http://www.irssi.org/
32
-
33
- .. image:: _static/irssi.png
34
-
35
- `Riece`_ on Emacs.
36
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
-
38
- .. _Riece: http://www.nongnu.org/riece/index.html.ja
39
-
40
- .. image:: _static/emacs.png
41
-
@@ -1,43 +0,0 @@
1
- 内部構造
2
- ==============================
3
-
4
-
5
- 全体図
6
- ------------------------------
7
-
8
- .. image:: _static/structure.png
9
-
10
- Twitter
11
- ------------------------------
12
-
13
- - TwitterのAPIを叩くためのクラス
14
-
15
- Scheduler
16
- ------------------------------
17
-
18
- - API呼び出し回数を最適化するためのクラス(予定)
19
-
20
-
21
- Agent
22
- ------------------------------
23
-
24
- - Twitterから情報を取得し、DBに登録するクラス
25
- - 例: メインタイムラインを取得し、DBに登録する
26
-
27
- Db
28
- ------------------------------
29
-
30
- Gateway
31
- ------------------------------
32
-
33
- Channel
34
- ------------------------------
35
-
36
- IFilter
37
- ------------------------------
38
-
39
- OFilter
40
- ------------------------------
41
-
42
- Command
43
- ------------------------------
@@ -1,102 +0,0 @@
1
- .. atig documentation master file, created by
2
- sphinx-quickstart on Mon Mar 15 15:36:01 2010.
3
- You can adapt this file completely to your liking, but it should at least
4
- contain the root `toctree` directive.
5
-
6
- atig.rb : Another Twitter Irc Gateway
7
- ==================================
8
- atig.rbはTwitterとIRCを結ぶゲートウェイです。
9
-
10
- スクリーンショット
11
- ------------------------------
12
-
13
- .. image:: _static/limechat_s.png
14
-
15
- ダウンロード
16
- ------------------------------
17
-
18
- - 安定板: `atigrb-0.4.3.tgz`_. ( `過去のバージョン`_ )
19
- - 開発版: `Github Repository`_.
20
-
21
- .. _atigrb-0.4.3.tgz: http://github.com/mzp/atig/tarball/v0.4.3
22
- .. _過去のバージョン: http://github.com/mzp/atig/tags
23
- .. _GitHub Repository: http://github.com/mzp/atig
24
-
25
- 特徴
26
- ------------------------------
27
-
28
- 必要なのはIRCクライアントだけ
29
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30
-
31
- - IRCクライアントさえあれば、どこからでもTwitterできます。
32
- - CUI中毒やEmacs中毒の方でも安心してお使いいただけます。
33
-
34
- Listsにも対応してます
35
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36
-
37
- - Listsはチャンネルになります。
38
-
39
- 大抵のOSで動きます
40
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41
-
42
- - Rubyで書いてあるので大抵のOSで動作します。
43
-
44
- IRC用のソフトが流用できます。
45
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46
-
47
- - 既存のIRC用のソフトを流用することができます。
48
- - 例えば、IRCプロキシであるTiarraと連携させることで、24時間Twitterのログがとることが可能です。
49
-
50
-
51
-
52
- .. 構造化された設計
53
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
-
55
- ~ tig.rbよりいいよ
56
-
57
- その他のドキュメント
58
- ------------------------------
59
- .. toctree::
60
- :maxdepth: 2
61
-
62
- quickstart
63
- feature
64
- irc
65
- commandline_options
66
- options
67
- commands
68
- config
69
- tig
70
- changelog
71
-
72
- バグ、疑問点、不満点を見つけたときは
73
- ------------------------------------
74
-
75
- こんな場合は、mzpまで気軽にご連絡ください。
76
- できる範囲でサポートします。
77
-
78
- - atig の挙動がおかしい
79
- - 設定の仕方がよく分からない
80
- - 欲しい機能がなかった
81
- - atig に足りないクールな機能を実装したぜ
82
-
83
- 連絡方法は以下のものがあります。それ以外の方法でもmzpまでに届けばかまいません。
84
-
85
- - Githubの `Issues`_ に登録する。
86
- - `@mzp`_ 宛につぶやく。
87
- - `Blog`_ の適当なページにコメントをつける
88
- - Githubでforkして、pull requestを送る
89
-
90
- .. _Issues: http://github.com/mzp/atig/issues
91
- .. _@mzp: http://twitter.com/mzp/
92
- .. _Blog: http://d.hatena.ne.jp/mzp/
93
-
94
-
95
- Indices and tables
96
- ==================
97
-
98
- * :ref:`genindex`
99
- * :ref:`search`
100
-
101
-
102
- .. |heart| replace:: ♥
@@ -1,31 +0,0 @@
1
- IRCコマンド
2
- ==============================
3
-
4
- nickなどの扱い
5
- ------------------------------
6
-
7
- - nick: OAuthのプロファイル名、ベーシック認証時のユーザ名
8
- - real: クライアントオプション。詳細は :doc:`options` を参照してください。
9
- - pass: ベーシック認証時のパスワード
10
-
11
- IRCコマンドとの対応
12
- ------------------------------
13
-
14
- \/invite ``screen_name`` ``channel``
15
- ``channel`` がメインチャンネル(通常は#twitter)の場合、ユーザ ``screen_name`` をフォローします。 同時にユーザ一覧の更新も行なうので、「follow ``screen_name`` 」と発言するよりも便利です。
16
-
17
- ``channel`` がリストチャンネルの場合、ユーザ ``screen_name`` をリストに追加します。
18
-
19
- \/kick ``screen_name`` ``channel``
20
- ``channel`` がメインチャンネル(通常は#twitter)の場合、ユーザ ``screen_name`` をリムーブします。
21
-
22
- ``channel`` がリストチャンネルの場合、ユーザ ``screen_name`` をリストから削除します。
23
-
24
- \/whois ``screen_name``
25
- ``screen_name`` の情報を表示します。ID番号、名前、自己紹介、現在地などを表示します。
26
-
27
- \/topic ``topic``
28
- :doc:`commands` の `autofix` へのエイリアスです。
29
- ``topic`` が前回の発言と類似している場合、古い発言を上書きします。
30
- \/who ``channel``
31
- ``channel`` の参加者の情報を表示します。ID番号、名前などを表示します。
@@ -1,76 +0,0 @@
1
- クライアントオプション
2
- ==================================
3
-
4
- 概要
5
- ------------------------------
6
- realnameのユーザ名の後ろにいろいろと書くことで、各オプションを有効にできます。
7
-
8
- 例えば次のようにすると、tidオプションとonlyオプションが有効になります。 ::
9
-
10
- twitter {
11
- host: localhost
12
- port: 19876
13
- name: mzp tid only
14
- }
15
-
16
- :doc:`commands` のoptコマンドを用いると、実行中に変更できます。
17
-
18
- 発言関係
19
- ------------------------------
20
- tid
21
- 各発言にtidを表示します。tidは特定の発言へreplyする場合などに利用します。
22
-
23
- :doc:`commands` も参照してください。
24
- sid
25
- 各発言にsidを表示します。sidはtidと同様に利用できます。
26
-
27
- sidは ``ユーザ名``:\ ``id`` という書式にです。そのため、
28
- ユーザ名の補完機能のあるクライアントではtidより入力が容易です。
29
-
30
- フォロワー関係
31
- ------------------------------
32
- only
33
- 指定すると片思い表示機能を有効にします。有効にしていると、自分が一方的
34
- にフォローしている人に ``+o`` がつきます。たいていのクライアントだと
35
- ``@`` がつきます。
36
-
37
- 発言関連
38
- ------------------------------
39
- stream
40
- `UserStream`_ を有効にします。
41
- 実行中の変更には対応していません。
42
- footer=\ ``footer``
43
- 発言の末尾に、 ``footer`` を追加します。
44
- ただし ``footer`` がfalseの場合は、追加しません。
45
- old_style_reply
46
- @nickで始まる発言が、@nick の最新の発言へのreplyとなるモードに切り替えます。
47
-
48
- .. _UserStream: https://dev.twitter.com/docs/streaming-apis/streams/user
49
-
50
- URL短縮関係
51
- ------------------------------
52
-
53
- 発言中の長いURLを自動で短縮します。どの短縮URLサービスを用いて短縮する
54
- か、どの程度の長さのURLを短縮するか、などが設定できます。
55
-
56
- bitlify
57
- |len|\ 字以上のURLを http://bit.ly\ によって短縮します。
58
- bitlify=\ ``size``
59
- ``size``\ 字以上のURLを http://bit.ly\ によって短縮します。
60
- bitlify=\ ``username``:\ ``api_key``
61
- |len|\ 字以上のURLを http://bit.ly のAPIによって短縮します。
62
- bitlify=\ ``username``:\ ``api_key``:\ ``size``
63
- ``size``\ 字以上のURLを http://bit.ly のAPIによって短縮します。
64
- APIを利用して短縮すると、ユーザページに短縮したURLが記録されたりします。
65
- 詳しくは、 http://bit.ly のSign up for bit.lyを読んでください。
66
-
67
- .. |len| replace:: 20
68
-
69
- システム関係
70
- ------------------------------
71
- api_base=\ ``api_base``
72
- Twitterのエントリポイントを指定します。実行中の変更には対応していません。指定しない場合は、https://api.twitter.com/1/が用いられます。
73
- .. stream_api_base=\ ``api_base``
74
- Stream APIのエントリポイントを指定します。実行中の変更には対応していません。指定しない場合は、http://stream.twitter.com/1/'が用いられます。
75
- stream_timeout=\ ``timeout``
76
- Stream APIの接続は一定時間ごとに再接続を行ないます。その時間間隔を指定します。0を指定した場合は、再接続を行ないません。
@@ -1,96 +0,0 @@
1
- クイックスタート
2
- ================
3
-
4
- 必要なソフトウェア
5
- ------------------------------
6
- 以下のものが必要です。
7
-
8
- - Ruby 1.8/1.9
9
- - Sqlite3
10
- - 適当なIRCクライアント(例: `LimeChat`_ )
11
-
12
- .. _LimeChat: http://limechat.net/
13
-
14
- またRubyには次のライブラリがインストールされている必要があります。
15
-
16
- - oauth
17
- - sqlite3-ruby
18
- - json(Ruby 1.8の場合, Ruby 1.9の場合は不要)
19
- - rspec(単体テストを実行する場合, 開発者以外は不要)
20
- - rake(単体テストを実行する場合, 開発者以外は不要)
21
-
22
- インストール
23
- ------------
24
-
25
- リリース版
26
- ~~~~~~~~~~
27
- Rubygemsを使用してインストールしてください。::
28
-
29
- $ gem install atig
30
-
31
- または `GitHub`_ からダウンロードしてください。
32
-
33
- .. _GitHub: http://github.com/mzp/atig/downloads
34
-
35
- trunk版
36
- ~~~~~~~~~~
37
- githubからpullしてください。::
38
-
39
- $ git clone https://github.com/mzp/atig.git
40
-
41
- 使ってみる
42
- ----------
43
-
44
- 起動
45
- ~~~~~~~~~
46
- コマンドラインから起動します。::
47
-
48
- $ atig -d
49
-
50
- githubからダウンロードした場合::
51
-
52
- $ cd atig
53
- $ bin/atig -d
54
- I, [2010-04-05T07:22:07.861527 #62002] INFO -- : Host: localhost Port:16668
55
-
56
- 接続
57
- ~~~~~~~~~
58
- IRCクライアントで、localhost:16668に接続します。
59
-
60
- - nickname: Twitterのユーザ名
61
- - login name: 使ってないので適当に
62
- - real name: :doc:`options` 。tidがおすすめです。
63
- - password: 空欄
64
- - 詳しくは :doc:`irc` を参照してください。
65
-
66
- .. image:: _static/irc_setting.png
67
-
68
-
69
-
70
- OAuth認証
71
- ~~~~~~~~~
72
- 初回接続時のみ、OAuthで認証させる必要があります。
73
- 接続時に#oauthにjoinされ、認証用のURLが表示されます。
74
-
75
- .. image:: _static/oauth_channel.png
76
-
77
- 表示されたURLにアクセスし、atig.rbに認証を与えます。
78
-
79
- .. image:: _static/allow.png
80
-
81
- 7桁の数字が表示されるので、それを#oauthに入力します。
82
-
83
- .. image:: _static/verify.png
84
-
85
- 発言してみる
86
- ~~~~~~~~~~~~
87
- - #twitterで発言すると、Twitterに投稿されます。
88
- - :doc:`commands` を用いると、RTやreplyが行なえます。
89
-
90
- さらに詳しい使い方
91
- --------------------
92
-
93
- - Tiarraと連携させると、発言のログを取ることができす。
94
- - `God`_ などと連携させると、atig.rbを常駐(デーモン化)させることができます。
95
-
96
- .. _God: http://god.rubyforge.org/
@@ -1,7 +0,0 @@
1
- #!/bin/sh
2
- for i in $@; do
3
- echo $i
4
- mv $i $i.$$
5
- convert -resize 300x300 $i.$$ $i
6
- rm -f $i.$$
7
- done
@@ -1,2 +0,0 @@
1
- Tiarraとの連携
2
- ==============
@@ -1,21 +0,0 @@
1
- tig.rbとの違い
2
- ==================================
3
- atig.rbは `tig.rb`_ から派生したプロジェクトです。
4
-
5
- .. _tig.rb: http://github.com/cho45/net-irc
6
-
7
- そのため基本的な機能は同様ですが、いくつかの細かい点が異なります。
8
-
9
- 機能の違い
10
- ------------------------------
11
-
12
- - 認証にxAuthではなくOAuthを使う。
13
- - ツイートを指定するのにtidだけでなくsidが使える。 sidは :doc:`options` の `sid` を参照してください。
14
- - 一部の :doc:`commands` の名前が異なる。例: tig.rbだと `list` 、atig.rbでは `user`\ 。
15
- - 自分への言及を表示する `#mention` チャンネルや、リツイートを表示する `#retweet` チャンネルがある。 :doc:`config` の「チャンネルの変更」で変更できます。
16
- - 自分への言及が `#twitter` チャンネルに表示されません。
17
-
18
- その他の違い
19
- ------------------------------
20
- - クラス単位でファイルを分割しているます。たぶん、コードをいじりやすいはず。
21
- - :doc:`commands` は本体のコードを触らずに拡張可能(たぶん)
@@ -1,5 +0,0 @@
1
- Jinja2==2.7.1
2
- MarkupSafe==0.18
3
- Pygments==1.6
4
- Sphinx==1.2b3
5
- docutils==0.11