読者です 読者をやめる 読者になる 読者になる

適当に改良(?)した

Ruby

この前のはさすがに俺俺すぎたので、設定ファイルとかで、他の人も使えるようにしている"途中"。

ToDo

  • タイムスタンプを見て、更新されているやつだけ差分でupdateする(はてダラと同じような感じで)
  • cookieの処理をちゃんとしないとブラウザのほうがログアウトしてしまう
# -*- coding: utf-8 -*-
require 'rubygems'
require 'mechanize'

class HatenaGroupKeyword
  attr_accessor :agent
  attr_accessor :name
  attr_accessor :password
  attr_accessor :group
  def initialize
    @agent = WWW::Mechanize.new
  end
  def login
    login_page  = @agent.get('https://www.hatena.ne.jp/login')
    login_form  = login_page.forms.first
    login_form["name"] = @name
    login_form["password"] = @password
    @agent.submit(login_form)
  end
  def edit(file)
    f = open(file,"r")
    text = f.read
    f.close
    keyword = File::split(file)[-1].split(".")[0]
    url = 'http://' + self.group + '.g.hatena.ne.jp/keyword/' + URI.encode(keyword) + '?mode=edit'
    puts url
    edit = @agent.get(url)
    edit_form  = edit.forms[0]
    edit_form["body"] = text
    @agent.submit(edit_form)
  end
  def create
    #need not to implement
  end
  def delete
    #menndoi
  end
end

#s = File::stat("./hatena_keyword/hoge.txt")
#puts s.mtime > Time.now # 最終更新時刻

config = YAML.load_file("/Users/yasuhisa/ruby/hatena.yaml")

hg = HatenaGroupKeyword.new
hg.name = config['name']
hg.password = config['password']
hg.group = config['group']

hg.login

Dir::glob("/Users/yasuhisa/ruby/hatena_keyword/*.txt").each{|f|
  hg.edit(f)
}

作戦としてはid:yaottiにemacsとかのUI部分を任せる流れでいくしかないな(ぉ