termtterでbuzztter検索プラギンを書きました
twitterの検索ってgoogle検索とかとも違う感じでかなり面白いと思っています。
リアルタイム性もそうなんですけど、内容も違いますし。
自分が使っているtermtterというtwitterクライアントには
sコマンドにでtwitterを検索する機能がついていて大変便利です。
twitterの検索は
日本語をキーにした検索をした時は日本人のpostばっかりなのですが
英語をキーにした検索をした時は英語のpostも混ざります。
自分は、日本語のpostだけから検索したい場合もあったので
何か会社も休みだったし、termtterからbuzztter検索をするプラギンを書いてみました。
# -*- coding: utf-8 -*- require 'nokogiri' require 'open-uri' require 'digest/md5' def buzztter_search_ja(q,language) uri = "http://buzztter.com/top/search_partial?q=#{q}&language=#{language}" html = open(URI.escape uri).read doc = Nokogiri::HTML.parse(html).xpath('/html/body/div/div') struct_user = Struct.new(:screen_name,:id) struct_status = Struct.new(:text,:id,:created_at,:user,:in_reply_to_status_id,:source) doc.map { |d| text = d.xpath('.//*[@class="description"]').text.gsub(/\n */,'') d.xpath('.//*[@class="taggedlink"]').to_html =~ /^.*http:\/\/twitter.com\/(.*)\/statuses\/([0-9]*).*title=\"(.*)\"/ user = struct_user.new( $1,Digest::MD5.hexdigest($1).to_i(16) ) struct_status.new(text,$2.to_i,$3,user) } end module Termtter::Client register_command( :name => :buzztter, :aliases => [], :exec_proc => lambda {|arg| statuses = buzztter_search_ja(arg,'ja') public_storage[:search_keywords] << arg output(statuses, :search) }, :completion_proc => lambda {|cmd, arg| public_storage[:search_keywords].grep(/#{Regexp.quote(arg)}/).map { |i| "#{cmd} #{i}" } }, :help => ["buzztter TEXT", "Search for Buzztter"] ) end
参考:
id:darashiさんのbuzztter検索コマンドのエントリ
http://d.hatena.ne.jp/darashi/20080827/1219863225