Twitterã®ã¿ã¤ã ã©ã¤ã³ãç£è¦ãã¦ãã¼ã¯ã¼ãã«ããããããGrowlããRubyã¹ã¯ãªãã
Macã§ä½¿ããTwitterã®ã¯ã©ã¤ã¢ã³ãã§ãèªåã«ãã£ãè¯ããã®ããªããªãè¦ã¤ãããªãã
ãããã試ããä¸ã§ã¯ãTIGã¨LimeChatã®çµã¿åããããªããªãè¯ãã£ããã©ãã»ãã®å°ãç´°ããã¨ããã§ç©è¶³ããªãã£ãã
ããã§ãèªåã§ä½ã£ã¦ã¿ããå種ã®ã¹ã¯ãªãããä½ã£ã人ã¯å¤æ°ããã¨æããã©ãæ°ã«ããªãã
twittertail.rb
Rubyã§æ¸ãããã³ã¼ãã¯ä»¥ä¸ã
require 'rubygems' require 'twitter' require 'ruby-growl' require 'yaml' require 'cgi' $KCODE = 'UTF8' config = YAML.load(STDIN) growl = Growl.new('localhost', 'twitterclient.rb', ['notify'], nil, nil) twitter = Twitter::Base.new(config['username'], config['password']) cache = [] while true timeline = twitter.timeline(:friends).reverse timeline.each do |status| next if cache.include?(status.id) screen_name = status.user.screen_name name = CGI.unescapeHTML(status.user.name) text = CGI.unescapeHTML(status.text) created_at = Time.parse(status.created_at).strftime('%Y-%m-%d %H:%M') if config['keywords'].any?{|k|[screen_name, name, text].any?{|t|t.match(k)}} puts puts " #{screen_name}(#{name}) #{created_at}" puts " #{text}" puts growl.notify('notify', "#{screen_name}(#{name})", text) else puts "#{screen_name} : #{text}" end cache << status.id end sleep config['interval'] end
config.yaml
è¨å®ãã¡ã¤ã«ã¯yamlã§æ¸ãã以ä¸ã¯ä¾ã
username: hogehoge password: passpass interval: 60 keywords: - nacookan - mac - ruby
- usernameã¯Twitterã®ã¦ã¼ã¶ã¼å(ã¾ãã¯ã¡ã¢ã)ã
- passwordã¯Twitterã®ãã°ã¤ã³ãã¹ã¯ã¼ãã
- intervalã¯ã¿ã¤ã ã©ã¤ã³ã®åå¾ééãåä½ã¯ç§ã60ããå°ããå¤ã«ããã¨ãAPIå¶éã«ãªãå¯è½æ§ãé«ãã
- keywordsã¯Growlããããã¼ã¯ã¼ã(æ£è¦è¡¨ç¾)ããªã¹ãã§æå®ãããæ稿ã®ã¦ã¼ã¶ã¼åãæ¬æã«ããã§æå®ãããã¼ã¯ã¼ããã²ã¨ã¤ã§ãå«ã¾ãã¦ãããGrowlããããã¨ã«ãªãã
æºå
RubyããTwitterã¨Growlã使ããããã«ãããããgemsã§ã¤ã³ã¹ãã¼ã«ããªãããããªãã
$ sudo gem install twitter $ sudo gem install ruby-growl
ãããªã ã£ãããªãå¿ãããã©ãæåsudoã§ããã®ãå¿ãã¦ã¦æ©ãã ã®ã¯è¦ãã¦ãã
使ãæ¹
twittertail.rbã¨config.yamlãåããã£ã¬ã¯ããªã«ç½®ãã¦ãã¿ã¼ããã«ãã以ä¸ã®ããã«ãã¦èµ·åãããã
$ ruby twittertail.rb < config.yaml
ããã§ã¿ã¤ã ã©ã¤ã³ã®ç£è¦ãå§ã¾ãã
ã¨ããããåå¾ãããã¼ã¿ããã®ã¿ã¼ããã«ã®æ¨æºåºåã«æ¸ãåºããããã«ãkeywordsã«ãããããå ´åã¯Growlããããããããã¨ãã¯æ¨æºåºåã«æ¸ãåºãã®ãã¡ãã£ã¨ç®ç«ã¤ããã«ãã¦ããã
ç¡éã«ã¼ããã¦ãintervalã«æå®ããç§æ°ãã¨ã«æ°çãåå¾ããåæ§ã«å¦çãããçµäºãããã¨ã㯠control + cã
æ³å®ãã¦ãã使ãæ¹ã¨ãã¦ã¯ãèªåã®ã¦ã¼ã¶ã¼åãæ°ã«ãªãã¦ã¼ã¶ã¼åããã¨ã¯æ°ã«ãªãåèªãªã©ãkeywordsã«æå®ãã¦ãã®ã¹ã¯ãªãããåããã¦ããæãããã°ãèªã¿ããã¨ãã¯ã¿ã¼ããã«ä¸ã®ãã°ãè¦ãã°è¯ãããæ°ã«ãªãçºè¨ã ãã¯ããã«Growlãããã®ã§è¦éãã«ãããªãã
æ稿ã¯ä»ã§
ããããã®ã¹ã¯ãªããã«ã¯æ稿æ©è½ãç¡ãã®ã§ãå¥ãªãã¼ã«ã§æ稿ãããã¨ã«ãªããQuickSilver用のTwitter投稿プラグインããµã¯ã£ã¨ä½¿ãã¦è¯ããã(QuickSilver使ã£ã¦ããªã)ãã¾ãRuby Twitter Gemå ¥ãã¦ããªãã¿ã¼ããã«ãããtwitterã³ãã³ãã§æ稿ã§ãããã©ã
Windowsã§åãã®ããª
Growl for Windowsãããã®ã§ããã®ã¾ã¾Windowsã§ãåãã®ããªï¼è©¦ãã¦ãªãã®ã§ããããªãã
Growlã®ã¢ã¤ã³ã³ãTwitterã®ã¦ã¼ã¶ã¼ã¢ã¤ã³ã³ã«ããã
ãã©ããæ¹ãããããªãã
Twitterã¢ã«ã¦ã³ã
ãã¾ã¾ã§èªåã®ã¢ã«ã¦ã³ãã©ãã«ãæ¸ãã¦ãªãã£ãæ°ãããã®ã§ãä¸å¿æ¸ãã¦ããã
ããã ãã¼ã
追è¨
æ¹è¯ãããGrowlã®ã¹ãã£ããã¼ãã¢ã¤ã³ã³è¡¨ç¤ºãsayã³ãã³ãã«ããèªã¿ä¸ãæ©è½ãªã©ã追å ã詳細ã¯ä»¥ä¸ã§ã