atig 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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