因為本人作息時間嚴重不規律, 導致開心網(kaixin001)裡養的寵物mm快餓死了。。。  於是想寫一個外掛,來幫mm自動按時餵食, 本想把此指令碼偷偷放伺服器的crontab裡:) ,用ruby寫很簡單,完成的程式碼如下:
配置檔案: pp.yml
logins:
    url: [url]http://www.kaixin001.com/login/login.php[/url]
    email: [email]xxx@xxx.com[/email]
    password: xxxxxx

trueman:
    url: [url]http://www.kaixin001.com/app/app.php?aid=1068[/url]

主檔案: kaixin_trueman.rb
require `rubygems`
require `mechanize`
require `yaml`

class KaixinTrueMan < WWW::Mechanize

    if not File.exists?(`pp.yaml`)
        puts “Please setup the pp.yaml for configuration first”
        exit
    end

    conf        = YAML::load_file(`pp.yaml`)
    logins    = conf[“logins”]
    trueman = conf[“trueman”]

    KAIXIN_EMAIL = logins[“email”]
    KAIXIN_PWD     = logins[“password”]
    LOGIN_URL        = logins[“url”]
    TRUEMAN_URL    = trueman[“url”]

    attr_accessor :logged_in

    def initialize
        super
    end

    def spider_to(url=TRUEMAN_URL)
        login or return false unless self.logged_in
        sleep(3)
        page = post(url)
        if page.uri.to_s == TRUEMAN_URL
            return page
        end
    end

    def feeding
        page = spider_to
        sleep(3)
        # get flash
        page.search(“//div[@id=`mainplayer`]”)
    
        #    TODO
        #    … …
    end

    private
    def login(email = KAIXIN_EMAIL,password = KAIXIN_PWD)
        @logged_in = begin
            page = post(LOGIN_URL,{“email” => email,”password” => password})
            if page.uri.to_s == `http://www.kaixin001.com/home/`
                return true
            else
                history.clear
                return false
            end
        end
    end
end

:(   現在可以讓這個spider爬到mm身邊了, 可是想要下手幫mm餵食,卻困難了。。。因為碰到個flash檔案 。。。  研究了兩天沒有結果。。。暫時告一段落吧。