リプライチェーンを辿って読んでいくプラグイン書いた
termtterで誰かの発言をlistとかで読んでるとき、興味深い発言だけど元発言辿るのが面倒なときありますよね?
例えばこんな発言があるとします。
ozawa: @hatoyama ワロスwwww (reply_to [$xa])
「何がおもしろいのかな?」と"show $xa"を打つ訳じゃないですか。そしたら、
hatoyama: @ozawa ああ、あれは決めないことに決めました! (reply_to [$xb])
っていう発言だったりするわけですよ。んで次は"show $xb"を打たないといけないわけですよ。マジ面倒くさい。
なのでtermtterでリプライチェーンを辿るためにtraceコマンドを書きました。
in_reply_to_status_idが設定されている返信だったら大体こんな感じでトレースできます。
trace $xa
hatoyama: 毎日忙しいお...
ozawa: @hatoyama まぁ、頑張れよ。ところで普天間とかどんな感じよ?
hatoyama: @ozawa ああ、あれは決めないことに決めました!
ozawa @hatoyama ワロスwwww
あんまり深いやりとりだとAPIをガンガン消費してしまいますがtwitterでそんなに深いやりとりなんてあんまり無いと思うんでこれでいいと思います。
ていうか、「それ○○でできるよ」ってのがあると思うんで誰か教えてください><
以下、pluginのソース。
# -*- coding: utf-8 -*- module Termtter::Client register_command( :name => :trace, :exec_proc => lambda {|arg| id = arg.gsub(/.*:\s*/, '') list = [Termtter::API.twitter.show(id)] while list.last.in_reply_to_status_id list.push Termtter::API.twitter.show(list.last.in_reply_to_status_id) end list.reverse_each{|item|output([item], :show)} }, :help => ["trace ID", "trace reply chain."] ) end # vim: fenc=utf8