溜まったdashboard をサムネイルでまとめ見

数日(どころか一日でも)チェックしてないと2~300 は余裕で溜まってるので、すべてチェックするのは大変すぎ。きりがない。ので、dashboard のポスト(今は photo のみ)を w150 でまとめて表示する script。ちょーやっつけなのでソースは汚い。

require 'rubygems'
require 'tumblr'
require 'mechanize'

module Tumblr
  class Dashboard
  ...
  end
end

################################################################

if __FILE__ == $0

  email = "xxx@xx.com"
  passwd = "xxx"

  imgs = Hash.new(0)
  num_photos = 0
  db = Tumblr::Dashboard.new(email, passwd)

  lst = 30
  (1.upto(lst)).each do |i|
    pg = db.page(i)
    pg.posts.each do |post|
      #    puts post.elem.inner_html
#      puts "----"
#    p elements = post.elem.search("//img[@class=image]")
      a = post.elem.search("//a[@title=Permalink]")
      permalink = a[0].attributes['href']
      rebloglink = "http://www.tumblr.com/reblog/#{post.post_id}"
      
      if post.post_type == "photo"
        elem =  post.elem.search("//img[@class=image]")[0]
        unless elem.nil?
          src = elem.attributes['src']
          #     p elem.class
          if imgs[src] == 0
            puts "<a href=\"#{permalink}\"><img src=\"#{src}\" width=\"150\"></a>\n"
          end
          imgs[src] += 1
          num_photos += 1
        end
      end
    end
  end

  puts "<hr> #{imgs.keys.size} / #{num_photos}"
end

Tumblr::Dashboardhttp://tumblr.g.hatena.ne.jp/cxx/20080517/1211057728のを借り。

lst には未表示ポスト/10 をいれておく。重複ポストは省いている。reblog したそーなポストはクリックすれば個別ポストに飛ぶ。直接 reblog するのも作ろうかと思ったけど、結局 2 step いるので(どうにかできるとは思うが)やめ。