今まではてなマップにクリップしたあれこれを全部一覧にして見てみたい
一度に 20 個しか見られないので ruby でプログラム書いてみたんだけど。
こうですか?こうですか?わかりません*1!
緯度と経度をどう扱えばいいのやら。これPla? (過去の日記に追記したので結城浩さんより先に使い始めたように見えてしまう)
#!/usr/bin/ruby -Ku require 'net/http' require 'rss/2.0' require 'cgi' $name = 'sample' # ここに適当な ID を Net::HTTP.version_1_2 def itemlist(http,maxX,minX,maxY,minY) responce = http.get("/#{$name}/rss?maxX=#{maxX}&maxY=#{maxY}&minX=#{minX}&minY=#{minY}") rss=RSS::Parser.parse(responce.body) if rss.channel.items.size>=20 i1=itemlist(http,maxX,0.5*(maxX+minX),maxY,0.5*(maxY+minY)) i2=itemlist(http,maxX,0.5*(maxX+minX),0.5*(maxY+minY),minY) i3=itemlist(http,0.5*(maxX+minX),minX,maxY,0.5*(maxY+minY)) i4=itemlist(http,0.5*(maxX+minX),minX,0.5*(maxY+minY),minY) return i1 | i2 | i3 | i4 else return rss.channel.items end end Net::HTTP.start("map.hatena.ne.jp",80){|http| items = itemlist(http,180,-180,90,-90) $data = items.to_a.sort {|a,b| a.pubDate <=> b.pubDate } } puts <<END <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>List of Hatena Map</title> </head> <body> END puts "<p>#{$data.size} clips</p>" puts "<dl>" $data.each {|item| print "<dt><a href=\"#{item.link}\">#{CGI::escapeHTML(item.title)}</a></dt>" if item.categories.size > 0 print "<dd>" item.categories.each {|cat| print "<a href=\"http://map.hatena.ne.jp/t/#{CGI::escape(cat.content)}\">#{CGI::escapeHTML(cat.content)}</a>," } print "</dd>" end if item.description != nil print "<dd>#{CGI::escapeHTML(item.description)}</dd>" end print "\n" } puts "</dl>" puts "</body></html>"