AU提供のEZアプリ Myスケジュールという 携帯電話でスケジュール管理するためのソフトのメモデータをPCに落とすスクリプトを作ってみました。
Myスケジュールは携帯電話のEZアプリから無料でダウンロード・使用出来ます。使い勝手の問題か今ひとつ話題になっていませんが、以下の機能があります。
- カレンダー・スケジュール
- 日記
- メモ
- 写真
- その他の情報表示
特徴としてはオフラインでも使えて指定時にKDDIのサービスDUOGATEと同期でき、PCから予定やメモを閲覧したり編集したり出来るところです。が、Google Calendarや他のwebサービスと比べてしまうと。。。
というわけで、他のアプリと同期させてなんとかしてやろうの第一歩としてメモ機能をテキストに書き出してみました。(このメモ機能も20件しか入らないんですよね...) 結構決めうちでやってますが。。。
動作にはrubyとmechanizeが必要です。しかしmechanize楽ですね。firebugのインスペクト機能でフィールドの情報を取り出して適当に指定してやったのですが慣れればすぐです。
後は読み書きも出来るようにして、praggerにつないだりgoogle notebookと同期してみようかな?
require 'mechanize'
require 'kconv'
class PreProcess < WWW::Mechanize::Page
def initialize(uri = nil, response = nil, body = nil, code = nil)
super(uri, response, body.kconv(Kconv::UTF8, Kconv::SJIS), code)
end
end
agent = WWW::Mechanize.new
agent.pluggable_parser.html = PreProcess
agent.user_agent_alias = 'Linux Mozilla'
page = agent.get("http://www.duogate.jp/")
login_form = page.forms[1];
login_form.fields.with.name('lid').value = '<DUOGATEのユーザ名>'
login_form.fields.with.name('pwd').value = '<DUOGATEのパスワード>’
top_page = agent.submit(login_form).root
memo_base = "https://aumypage.duogate.jp/mysche/myscheA14.php"
["", "?page=2"].each { |page|
memo_page = agent.get(memo_base+page)
memo_page.links.with.href(/A16\.php\.?/).each { |url|
id = url.href.gsub(/.*=/, "")
puts "ID:",id
memo_item = url.click
m = memo_item.forms.first
r = m.radiobuttons.with.name('icorn')
puts "ICON:",r.with.checked(true).value
r = m.radiobuttons.with.name('imp')
puts "Priority:", (r[0].checked ? "Normal" : "High")
puts "Position:",m['formPosition']
puts "URL:",m['formUrl']
puts "Title:",m['stitle']
puts "Detail:",m['detail']
puts "--------"
}
}