MozReplを使ってホッテントリをすべて開く

僕が毎日見るwebページの一つにはてなブックマークのホッテントリがあります。

技術者の人たちが多いので有意義な情報が多いです。

しかし、自分が面白そうと思った記事ばかり読んでいても興味の範囲が広がらないと思います。せめてチラリとでも記事を眺めておいたほうがいいかもしれない、そう思ってホッテントリをすべて開くプログラムを作りました。

使ったものはrubyのMechanizeと、MozReplというFirefoxのアドオンです。


# -*- coding: utf-8 -*-
require 'rubygems'
require 'mechanize'
require 'kconv'
require 'net/telnet'


def mozrepl_open
$telnet = Net::Telnet.new("Host" => "localhost", "Port" => 4242, "Prompt" => /repl> z/n)
end
def mozrepl_cmd(str)
$telnet.cmd(str)
sleep(0.5)
end
def mozrepl_close
$telnet.puts("repl.quit()")
$telnet.close
end

agent = Mechanize.new
agent.get('http://b.hatena.ne.jp/hotentry')

mozrepl_open
agent.page.search('blockquote').each do |p|
p.search('cite').each do |q|
puts q.values
end
mozrepl_cmd("gBrowser.selectedTab = gBrowser.addTab()")
mozrepl_cmd("content.location.href = " + p.values.to_s)
puts p.values
puts '---'
end
mozrepl_close

実行後はこんな感じにタブがいっぱいに。

f:id:hiroshi128:20110819142019p:image

とても重いです。。。

rubyでS式っぽいの出力出来るのか

タイトルそのまんまですが、rubyでS式的な構造を出力出来るライブラリを見つけた。

こんな感じに使うみたいです。


require 'ripper'
require 'pp'

src="1+1"
pp Ripper::SexpBuilder.new(src).parse

出力結果


[:program,
[:stmts_add,
[:stmts_new],
[:binary, [:@int, "1", [1, 0]], :+, [:@int, "1", [1, 2]]]]]