GitHubでTermtter本家をforkした
Termtterで気になっていたところがあったので,forkの試験も兼ねていろいろやってみたよ.
GitHub - jugyo/termtter: moved to https://github.com/termtter/termtterからforkボタンを押して,普通にcloneした.
$ git clone git@github.com:speg03/termtter.git
以下,ちょこちょこ変更したところ.
lib/plugin/favorite.rb
favoriteしたstatusのtextを出力に含めるとか細かい変更もあるけど,一番やりたかったのはユーザを指定したときの挙動.
> favorite @hoge
とかしたとき,
statuses = t.get_user_timeline(user)
となっていて,本当に最新のstatusを取ってくる.そうすると,今見えている最新のstatusと違うことがあるので困る.
で,次のように変更した.
statuses = public_storage[:log].select {|s| s.user_screen_name == user }
これで今までに取得した範囲から最新のstatusをfavoriteできる.
lib/plugin/uri-open.rb
uri-openをしばらく使ってみるとわかるのだけど,listがbuzztterで埋め尽くされるなどして困る.
あと,一番最近のURIを開こうと思ってもlistの末尾に追加されるようだったので,いちいち番号を調べる必要があるのも不便.
で,次のような感じ.
diff --git a/lib/plugin/uri-open.rb b/lib/plugin/uri-open.rb index efa864f..c9946ca 100644 --- a/lib/plugin/uri-open.rb +++ b/lib/plugin/uri-open.rb @@ -5,8 +5,12 @@ module Termtter::Client add_hook do |statuses, event, t| if !statuses.empty? && event == :update_friends_timeline - statuses.each do |s| - public_storage[:uris] += s.text.scan(%r|https?://[^\s]+|) + statuses.sort_by{|s| s.id }.each do |s| + uris = s.text.scan(%r|https?://[^\s]+|) + uris.each do |uri| + public_storage[:uris].delete(uri) + public_storage[:uris].unshift(uri) + end end end end
(17:42 編集)何かちまちま変更してる….statusをsortするようにした.
これで一番最近のURIを開くときは,
> uri-open 0
でよくなるし,URIが重複しないようになった.