#!/usr/bin/env ruby # 以下のスクリプトを元に作成しています # SBM - コメントを取得 | Diaspar Journal # http://diaspar.jp/node/145 require 'net/http' require 'open-uri' require 'rubygems' require 'json/pure' require 'digest/md5' require 'rexml/document' require 'time' require 'cgi' Net::HTTP.version_1_2 site_url = 'http://bmky.net/' api_url = "http://www.enjoyxstudy.com/urls/get.cgi?url=" + CGI.escape( site_url ) Save_dir = "" post_reg = /^http:\/\/bmky\.net\/diary\/log\/(\d+)\.html/ def get_hatena_comments( url ) posts = [] host = 'b.hatena.ne.jp' path = '/entry/json/' + url body = Net::HTTP.start( host, 80 ).get( path ).body unless body =~ /^\(null\)/ json = JSON.parse( body.sub!( %r!^\((.*)\)$! ) { $1 } ) json['bookmarks'].each do |item| if item['comment'] != '' post = { :date => item['timestamp'][0..9].gsub( %r!/!, '-' ), :user => item['user'], :cmnt => item['comment'], :site => "hatena" } posts.push( post ) end end end return posts end def get_delicious_comments( url ) posts = [] host = 'feeds.delicious.com' path = '/rss/url/' + Digest::MD5.hexdigest( url ) body = Net::HTTP.start( host, 80 ).get( path ).body xml = REXML::Document.new( body ) xml.elements.each('rdf:RDF/item') do |item| if item.elements['description'].text post = { :date => item.elements['dc:date'].text[0..9], :user => item.elements['dc:creator'].text, :cmnt => item.elements['description'].text, :site => "del.icio.us" } posts.push( post ) end end return posts end def create_comments_html( posts, id ) return if posts.empty? comments = [] html = [] html << '