AutoPagerize for SeaHorseのSITEINFOをJSONに変換するRubyスクリプト
AutoPagerize for SeaHorseをwedata互換形式に変換する - 素人がプログラミングを勉強するブログをRuby使って書き直した。
RubyのオブジェクトをJSONにするのライブラリはRuby 用 JSON パーサーを更新、 JSON への変換も追加 - WebOS Goodiesを使っていて、simple-json.rbっていうファイル名で保存してる。
#!/usr/bin/env ruby require 'open-uri' require 'rexml/document' require 'simple-json' require 'cgi' result = [] ["http://wikiwiki.jp/958/?cmd=source&page=AutoPagerize%2FSITEINFO", "http://wikiwiki.jp/958/?cmd=source&page=AutoPagerize%2FSITEINFO2"].each{|url| open(url) {|f| doc = REXML::Document.new(f) text = CGI.unescapeHTML(REXML::XPath.match(doc, 'string(//pre[@id="source"])').first) o = nil text.each_line{|str| m = nil if m = /^\s*\*\*\s*([^\[]*)/.match(str) o = Hash.new result.push({"name"=>m[1], "data"=> o}) elsif m = /\s*(\w+):\s*'(.*)',/.match(str) o[m[1]] = m[2] end } } } puts JsonBuilder.new.build(result)
REXML便利だなあ。