にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

WWW::Mechanizeを使ってdel.icio.usにPostするスクリプト

とりあえずテスト的な。これを使ってPRaggerのpublish::deliciousプラグインにでもまとめるかな。ポイントはBASIC認証を使っているところ。といっても調べたらあっさり分かりましたです。proxyとか書いているけど実際にプロクシ使っての動作確認はまだしていません。

require 'rubygems'
require 'mechanize'
require 'kconv'

class Delicious
  def initialize username, password, proxy=nil
    @username = username
    @password = password
    @agent    = WWW::Mechanize.new
    @agent.basic_auth(@username, @password)
    if proxy && proxy.is_a?(Hash) && proxy['proxy_addr'] && proxy['proxy_port']
      @agent.set_proxy(proxy['proxy_addr'], proxy['proxy_port'],
                       proxy['proxy_user'], proxy['proxy_pass'])
    end
  end

  def post url, desc, option=nil
    params = {}
    post_url = 'https://api.del.icio.us/v1/posts/add?'

    params[:url] = url
    params[:description] = desc

    req_url = []
    params.each do |k,v|
      req_url << k.to_s.toutf8 + '=' + v.toutf8
    end
    puts req_url.join('&')
    result = @agent.get(post_url + req_url.join('&'))
  end
end

agent = Delicious.new('username','password')
agent.post 'http://www.google.co.jp/', 'google'

usernameとpasswordだけ自分のと書き換えてくださいね。

TODO

  • コメントとかタグとかも入れられるように(テスト中にdel.icio.us落ちたorz)