Termtterにfavoritesコマンドを追加
見当たらなかったのでないと思うのだけど,指定したユーザのfavoritesを表示するfavoritesコマンドを追加した.
ついでに,favoriteに限ったことではないのだけど,ユーザ名を指定する場合,@をつける必要があるのかないのかどっちでもいいのかわかりにくい.
とりあえず,favoriteは@が必要なのでHELPにそうわかるように@をつけておいた.
lib/plugin/favorite.rb
diff --git a/lib/plugin/favorite.rb b/lib/plugin/favorite.rb index 6a45f01..27bf0c8 100644 --- a/lib/plugin/favorite.rb +++ b/lib/plugin/favorite.rb @@ -19,7 +19,7 @@ module Termtter::Client end end - add_help 'favorite,fav USER', 'Favorite last status on the user' + add_help 'favorite,fav @USER', 'Favorite last status on the user' add_command %r{^(?:favorite|fav)\s+@(.+)\s*$} do |m, t| user = m[1].strip @@ -70,6 +70,19 @@ module Termtter::Client %w(favorite).grep(/^#{Regexp.quote input}/) end end + + register_command( + :name => :favorites, :aliases => [], + :exec_proc => lambda {|arg| + if arg =~ /^@(\w+)/ + call_hooks(Termtter::API.twitter.favorites($1), :favorites) + end + }, + :completion_proc => lambda {|cmd, args| + find_user_candidates args, "#{cmd} %s" + }, + :help => ['favorites @USER', 'List the USER\'s favorite posts'] + ) end module Termtter @@ -81,5 +94,9 @@ module Termtter http.request(post_request(uri)) end end + + def favorites(id) + return get_timeline(url_for("/favorites/#{id}.json")) + end end end
lib/plugin/stdout.rb
diff --git a/lib/plugin/stdout.rb b/lib/plugin/stdout.rb index 384975c..ca25b2a 100644 --- a/lib/plugin/stdout.rb +++ b/lib/plugin/stdout.rb @@ -49,7 +49,7 @@ module Termtter::Client case event when :update_friends_timeline, :list_friends_timeline print_statuses(statuses) - when :search, :list_user_timeline, :show, :replies + when :search, :list_user_timeline, :show, :replies, :favorites print_statuses_with_date(statuses) end end