2009-01-02
■[mac][twitter] termtter から growl に通知する の続き 
引き続きtwitter、というかtermtterの話。
termtter から growl に通知する - Learning to be Me の続き。growlで通知するとこまではできたのだが、ユーザのアイコンが表示できていなかった。url指定しても、うまくいったり行かなかったりなので、結局一度ダウンロードして、画像を表示することにした。
~/sketch/ruby/growl-send.rb とかそんな感じの適当なファイルに、
require 'meow' require 'uri' def get_icon(s) cache_file = "#{Termtter::CACHE_DIR}/#{s.user_id}" unless File.exist? cache_file buf = "" open(URI.encode(s.user_profile_image_url)) do |r| buf = r.read end open(cache_file,"w") do |r| r.write(buf) end end return OSX::NSImage.alloc.initWithContentsOfFile(cache_file) end Termtter::Client.add_hook do |statuses, event| if !statuses.empty? && event == :update_friends_timeline growl = Meow.new("Termtter") statuses.reverse.each do |s| screen_name = s.user_screen_name text = s.text.gsub("\n",'') icon = get_icon(s) growl.notify(screen_name,text,:icon=>icon) end end end
を保存してあげて、
.termtter を、
module Termtter CACHE_DIR = '/tmp/termtter-icon-cache-dir' class Status %w( id text created_at truncated in_reply_to_status_id in_reply_to_user_id user_id user_name user_screen_name user_profile_image_url ).each do |attr| attr_accessor attr.to_sym end end class Client def get_timeline(uri, update_since_id = false) doc = Nokogiri::XML(open(uri, :http_basic_authentication => [@user_name, @password])) statuses = [] doc.xpath('//status').each do |node| status = Status.new %w( id text created_at truncated in_reply_to_status_id in_reply_to_user_id user/id user/name user/screen_name user/profile_image_url ).each do |key| method = "#{key.gsub('/', '_')}=".to_sym status.send(method, node.xpath(key).text) end status.created_at = Time.utc(*ParseDate::parsedate(status.created_at)).localtime statuses << status end if update_since_id && !statuses.empty? @since_id = statuses[0].id end return statuses end end end Dir.mkdir(Termtter::CACHE_DIR) unless File.exist?(Termtter::CACHE_DIR) require File.expand_path('~/sketch/ruby/growl-send.rb') configatron.user_name = 'ユーザ名' configatron.password = 'パスワード'
という感じにしてあげれば、アイコン付きで、termtterからgrowlに通知がいく、はず。
トラックバック - http://d.hatena.ne.jp/bubbles/20090102/1230918323
リンク元
- 26 http://jugyo.org/blog/2935
- 16 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/bubbles/20090102/1230903496
- 15 http://www.google.co.jp/search?q=termtter&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&client=firefox-a
- 11 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=termtter+mac
- 10 http://www.google.co.jp/search?q=termtter&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a
- 9 http://www.google.co.jp/search?q=termtter+mac&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/bubbles/20090102/1230903496&ei=FGiPT9fHDMafiAeHq-X_Aw&usg=AFQjCNE6xdLbdefa4M08O8-8Uio6hQu2Rw&sig2=Fy6A-MIhKBsyVNei5yd69Q
- 6 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:en-US:official&hs=m0f&q=termtter&btnG=検索&lr=
- 6 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja:official&hs=t7b&num=100&newwindow=1&q=termtter+mac&btnG=検索&lr=lang_ja&aq=f&oq=
- 6 http://www.google.co.jp/search?q=termtter+growl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&hl=ja&client=firefox-a

user_profile_image_url を取得できるようにプログラムを修正しました。
よかったらアップデートしていただければと思います。
ありがとうございます!
アップデートしました。