| ◀ | 2008年8月 | |||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 01 | 02 | |||||
| 03 | 04 | 05 | 06 | 07 | 08 | 09 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
| [身分] | 某研究室在籍中 |
| [分野] | ユビキタスXX / 実空間指向XX |
| [芸能] | 加藤あい / 伊集院光 |
| [音楽] | SOUL'd OUT / hiro / Sowelu |
| [SNS] | mixi / GREE / Orkut |
| [FOAF] | ![]() |
[ ] |
river24@いえ |
MHC のスケジュールを Google Calendar にアップロードするスクリプトです.
Ruby で書かれています.
デフォルトではスクリプトと同じディレクトリの「.gcal」というファイルを参照するようになっていますので,以下の内容で「.gcal」というファイルを作成してください.
# google calendar Feed URL gcal_feed: http://www.google.com/calendar/feeds/XXXXXXXXXXXXXXXX@group.calendar.google.com/private/full # email address gcal_mail: XXXXXXXXXX@gmail.com # password gcal_pass: XXXXXXX # sync mode (delete or keep) gcal_mode: keep
gcal_feed は Google Calendar のカレンダーの個人用 URL というもの.カレンダーの詳細から見ることができる.ただし private の部分と full の部分は,違う書式になっていると思うので,こちらを参考にして,書き込みのできる URL に修正.
gcal_mail は Google Calendar にアクセスするためのメールアカウント.おそらく Gmail のアカウントだったりするのではなかろうか.
gcal_pass は Google Calendar にアクセスするためのパスワード.これも同上.
gcal_mode は注意が必要.
mhc2gcal は,後述のコマンドラインオプションなどで指定された期間に,設定ファイルの gcal_feed で指定された Google Calendar に登録されているイベントと,ローカルの MHC に登録されているイベントとを比較し,以下の処理を行います.
mhc2gcal は MHC から Google Calendar への一方的な登録のみを実現したくて作成したものです.Google Calendar に登録されているイベントを考慮しないため,Google Calendar 側のイベントを削除せずに何度も実行すると,イベントが重複して登録されてしまいます.これを防ぐため,当方は以下のような利用方法を想定しています.
コマンドラインオプションは以下の通りです.なお --help オプションで実行すると,以下の一覧が表示されます.
--help show this message.
--category=CATEGORY pick only in CATEGORY.
'!' and space separated multiple values are allowed.
--secret=CATEGORY change the title of the event to 'SECRET'
space separated multiple values are allowed.
--date={string[+n],string-string}
set a period of date.
string is one of these:
today, tomorrow, sun ... sat, yyyymmdd, yyyymm, yyyy
yyyymm lists all days in the month and yyyy lists all
days in the year.
list n+1 days of schedules if +n is given.
default value is 'today+0'
--description add description.
--verbose verbose mode.
--proxy-addr=addr set the address of http proxy.
--proxy-port=port set the port number of http proxy.
--proxy-user=user set the username of http proxy.
--proxy-pass=pass set the password of http proxy.
--version display the version of mhc2gcal and exit.
ベースとなった mhc2ical と同じ部分が多いです.(詳細現在執筆中)
イベント情報を隠すオプションについて.--secret オプションでカテゴリを指定することによって,特定のカテゴリのイベントを SECRET というタイトルのイベントで登録するようになります.これは,Google Calendar を使ってスケジュールを他人に公開(共有)することを目的にしたコマンドで,イベントの詳細は隠したいけれど,時間は埋まっていますよ,という意思表示を示すのに作りました.
イベント詳細追記のオプションについて.--description を指定すると,イベントに詳細が追加されます.詳細の書式などに関しては,白井さんが追加してくださったものをそのまま採用させていただきました.
スクリプトを実行中に何の処理をしているかを表示するオプションについて.--verbose を指定すると,どのイベントを削除したのか,どのイベントを登録したのか,という情報が表示されます.動作の確認などにご活用ください.
プロキシ設定のオプションについて.--proxy-addr=addr と --proxy-port=port が指定されていると,そのIPアドレス(あるいはホスト)とポート番号をプロキシとして使用します.どちらかが欠けてたら使用しません.次に --proxy-user=user と --proxy-pass=pass が指定されていると,それらをユーザ名およびパスワード名としてプロキシの認証に使います.これもどちらかが欠けていると認証は有効になりません.
ちなみに実行時には,プロキシおよびプロキシ認証の有無に応じて以下のような表示があります.
プロキシ未使用時 Connect to Google Calendar directly プロキシ使用時(認証なし) Connect to Google Calendar through proxy(addr:port) プロキシ使用時(認証あり) Connect to Google Calendar through proxy(user:pass@addr:port)
ご確認ください.
たとえば以下のように実行します.何が起きるかは後述.
ruby mhc2gcal.rb --date=today+90 --category="!todo !done !holiday" --secret="private"
上記のようなオプション指定の場合は,以下のように動作します.
最新の mhc2gcal のバージョンは 0.3.0 です.
こちらからダウンロードできます.
gcalapi 0.1.1 にて動作確認.