この前のはさすがに俺俺すぎたので、設定ファイルとかで、他の人も使えるようにしている"途中"。
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部分を任せる流れでいくしかないな(ぉ