2012-09-04 :-(
_ [Twitter][tig.rb][TwitterIRCGateway]tig.rb を使ってみた
cho45 作 TwitterIRCGateway cho45/net-irc · GitHub (古き良き伝統的な tig ふあこちら TweetIrcGateway - Misuzilla.org)
環境
- Microsoft Windows 7 64bit
- cygwin
- ruby 1.9.3
インストール
っていうか git するだけ
% git clone git://github.com/cho45/net-irc.git
tig 起動
% cd net-irc.git/examples % ruby ./tig.rb ./tig.rb:2053: invalid multibyte char (US-ASCII) ./tig.rb:2053: invalid multibyte char (US-ASCII) ./tig.rb:2053: syntax error, unexpected $end, expecting keyword_end ... str = "\00310♺ \017" + str if status.retwe...
UTF-8 かなこれ。
デコードできないらしい。
とりあえず tig.rb に encoding を追加してみた。おかしい。最近もコミットされまくってるから ruby 1.9 がどうのこうのという問題ではないのかしら。
#!/usr/bin/env ruby # -*- encoding: utf-8 -*-
tig を起動したら IRC クライアントからつなげる。LimeChat を使用。
サーバーを追加してこんな感じで設定する。

サーバーにログインするとこんなのが流れてくる。
19:40 <#twitter> (twittergw) Failed trying xAuth 19:40 <#twitter> (twittergw) Access following URL: https://api.twitter.com/oauth/authorize?oauth_token=なんとかかんとか 19:40 <#twitter> (twittergw) and send /me oauth <PIN>
URL にアクセスして
/me oauth <PIN>
を入力すれば oauth 認証終わり。
しかし ゆとりなので fav とか RT の設定とか面倒くさくて挫けそう。
参考
_ [gig.rb][github]gig.rb を使えない
さっき取得した net-irc に含まれている。
おもむろに実行してみる。
% ruby gig.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- libxml (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from gig.rb:20:in `<main>'
libxml ではなく libxml-ruby という名前。
% gem install libxml-ruby
再度起動。
% ruby gig.rb
gig.rb:179:in `reopen': <STDOUT> can't change access mode from "w" to "r" (ArgumentError)
from gig.rb:179:in `block (2 levels) in daemonize'
from gig.rb:177:in `open'
from gig.rb:177:in `block in daemonize'
from gig.rb:174:in `fork'
from gig.rb:174:in `daemonize'
from gig.rb:187:in `<main>'
ここなんだが、やはり Windows だからですかね (´・ω・`)
def daemonize(foreground=false)
trap("SIGINT") { exit! 0 }
trap("SIGTERM") { exit! 0 }
trap("SIGHUP") { exit! 0 }
return yield if $DEBUG || foreground
Process.fork do
Process.setsid
Dir.chdir "/"
File.open("/dev/null") {|f|
STDIN.reopen f
STDOUT.reopen f
STDERR.reopen f
}
yield
end
exit! 0
end
[ツッコミを入れる]



