=begin # club_ntdo_enquete クラブニンテンドーから未回答のアンケートを取得する。 ## ダウンロード http://bmky.net/product/pragger/#club_ntdo_enquete ## 解説 未回答のアンケートタイトルを取得して、アンケート開始日を設定したアイテムを返す。 ## 使い方 - module: myplugin::club_ntdo_enquete config: authfile: config/club_ntdo_auth.yaml # ログインに使用する設定ファイル ## 設定ファイルの書き方 --- userid: xxxxxxxxx passwd: xxxxxxxxx ## 更新履歴 2008/10/02 : サイトリニューアルに対応 2008/05/11 : サイトリニューアルに対応 2008/03/03 : リリース =end require 'rubygems' require 'mechanize' require "time" def club_ntdo_enquete( config, data ) auth = YAML.load( File.read( config['authfile'] ) ) clubntd_url = "http://club.nintendo.jp/member/exec/index" agent = WWW::Mechanize.new page = agent.get( clubntd_url ) form = page.forms[0] form.fields.find { |f| f.name == "userid" }.value = auth["userid"] form.fields.find { |f| f.name == "passwd" }.value = auth["passwd"] page = agent.submit( form, form.buttons.first ) html = agent.get_file( "https://club.nintendo.jp/member/exec/memberEnqueteInfo" ).toutf8 html.gsub!( /\r$/m, "" ) items = [] html.gsub( /\n (.*?)<\/tr>/m ) do match = $1 title = match.scan( /(.*?)<\/td>/ )[0][0] date_begin = match.scan( /(\d+年\d+月\d+日) [~〜] (\d+年\d+月\d+日)<\/td>/ )[0][0] date_end = match.scan( /(\d+年\d+月\d+日) [~〜] (\d+年\d+月\d+日)<\/td>/ )[0][1] date_begin.gsub!( /[年月]/, "-" ) date_begin.gsub!( /日/, "" ) date_end.gsub!( /[年月]/, "-" ) date_end.gsub!( /日/, "" ) item = "" limit = date_begin + "~" + date_end item.instance_eval do @link = clubntd_url def link @link end @title = [ "[アンケート]", title, limit ].join( " " ) def title @title end @date = Time.parse( date_begin ) def date @date end end items << item end return items end