2009年10月26日(月)

mhc2gcal 0.4.0

mhc2gcalに関するりばにしの記事

だいぶ前になりますが,mhc2gcalのソース管理をgithubに移行するとともに,0.4.0をリリースしていました.

修正点は非常に些細なことですが,以下の通りです.

  • 設定ファイルを指定しなかった際に参照するYAMLファイルの名前を変更

なお,gcalapi 0.1.2に対してこのpatchを適用しないとエラーが出るんじゃないかと思います.次期リリースにはこのpatchも含めるようにするべきなのかな?

0.5.0(予定)では,設定ファイル内のパスワードをBase64でエンコードするようにします.やればすぐ完了すると思いますが,ちょっとお待ちください・・・.

2009年10月26日22時09分 | Permalink | 0 Comments | このエントリーを含むはてなブックマーク

2009年03月31日(火)

gcalapi 0.1.2 への patch

mhc2gcalに関するりばにしの記事

Google Calendar の Feed に新たな名前空間が追加されたためか,自分が使っている mhc2gcal がエラーを吐くようになっていた.

mhc2gcal で使っている gcalapi の calendar.rb に以下のパッチをあてて動くようになった.

--- calendar.rb.0.1.2   2007-02-19 00:08:31.000000000 +0900
+++ calendar.rb 2009-03-30 10:37:47.000000000 +0900
@@ -60,6 +60,10 @@
       REXML::Document.new(ret.body).root.elements.each("entry"){}.map do |elem|
         elem.attributes["xmlns:gCal"] = "http://schemas.google.com/gCal/2005"
         elem.attributes["xmlns:gd"] = "http://schemas.google.com/g/2005"
+        elem.attributes["xmlns:openSearch"] = "http://a9.com/-/spec/opensearchrss/1.0/"
+        elem.attributes["xmlns:gml"] = "http://www.opengis.net/gml"
+        elem.attributes["xmlns:georss"] = "http://www.georss.org/georss"
+        elem.attributes["xmlns:batch"] = "http://schemas.google.com/gdata/batch"
         elem.attributes["xmlns"] = "http://www.w3.org/2005/Atom"
         entry = Event.new
         entry.srv = @srv

gcalapi の作者さんにも送っておこう.

2009年03月31日00時57分 | Permalink | 0 Comments | このエントリーを含むはてなブックマーク

2008年08月19日(火)

mhc2gcal 0.3.0 リリース

mhc2gcalに関するりばにしの記事

久々に mhc2gcal をアップデートしました.主な変更点は以下の通り.

  • 指定された期間内の Google Calendar と MHC のイベントを比較するようにし,比較した結果
    • 両方に存在するイベントに関しては,何もしない
    • Google Calendar のみに存在するイベントに関しては,設定ファイルの gcal_mode の値に基づいて消すか残すかの処理を行う
    • MHC のみに存在するイベントに関しては,Google Calendar に追加する処理を行う
  • イベントのタイトルに場所を含めるのをやめた

といったところです.

今までは実行するたびに,Google Calendar のイベントを全部消して,MHC のイベントを新たに作成する,という流れになっていたので無駄が多かったのですが,今回は無駄が少なくなったと思います.

最新版のダウンドーロおよび使い方はこちらをご参照ください.

2009年10月26日追記:最新版の使い方はこちらをご参照ください.

2008年08月19日20時00分 | Permalink | 0 Comments | このエントリーを含むはてなブックマーク

2008年03月27日(木)

mhc2gcal 0.2.1 を gcalapi 0.1.1 で動作確認

mhc2gcalに関するりばにしの記事

gcalapi 0.1.1 がリリースされていたので,導入して試してみたところ,問題なく動作したようです.これであのパッチも不要になりますた.

2008年03月27日02時03分 | Permalink | 3 Comments | このエントリーを含むはてなブックマーク

2008年03月08日(土)

mhc2gcal 0.2.1 リリース

mhc2gcalに関するりばにしの記事

0.2.0 リリース後,白井さんに作っていただいた patch を適用したものを,新たに 0.2.1 としてリリースしました.白井さん,ありがとうございました!

2009年10月26日追記:最新版の使い方はこちらをご参照ください.

2008年03月08日14時24分 | Permalink | 0 Comments | このエントリーを含むはてなブックマーク

2008年02月19日(火)

Patch for gcalapi 0.1.0 : イベントが削除できない問題対策

mhc2gcalに関するりばにしの記事

mhc2gcal の 0.2.0 をリリースした矢先に,イベントが削除できないというコメントをいただき,当方でも確認してみたところ削除できない模様.ということで調査.

Google Calendar との接続に利用させてもらっている gcalapi では,イベントを削除する際に DELETE ではなく POST を利用している模様.この手法自体は Firewall などで DELETE が使えない環境向けに用意されている手法らしいので問題なし.
問題は POST を呼び出す do_post メソッドを呼ぶ際に BODY として "DELETE uri.path" という文字列が指定されている部分.この部分は,本来 DELETE を使うときと同様,何も入れなくていいのではなかろうか?と推測.試しに空っぽの文字列(という表現であっているのか?)を入れてみたところ,ビンゴ.見事動作しました.

ということで,イベントを削除するメソッドを定義している service_base.rb に以下のパッチを適用することで対処,動くようにはなると思います.(念のため,元の部分はコメントアウトになってます.弱気?)

*** service_base.rb.0.1.0       2008-01-03 16:49:28.000000000 +0900
--- service_base.rb     2008-02-18 23:00:33.000000000 +0900
***************
*** 98,104 ****
uri = URI.parse(feed)
res = do_post(uri,
{"X-HTTP-Method-Override" => "DELETE"},
!                "DELETE " + uri.path)
logger.info("-- delete en (#{res.message}) --") if logger
res
end
--- 98,105 ----
uri = URI.parse(feed)
res = do_post(uri,
{"X-HTTP-Method-Override" => "DELETE"},
!                  "")
! #                "DELETE " + uri.path)
logger.info("-- delete en (#{res.message}) --") if logger
res
end

ちなみに,今まで動いていたものが何故急に動かなくなったのかは不明.昔は許可していた仕様が,変更になったのかな?今回のように DELETE の代替として POST を使っているのであれば,その BODY が空欄であるのは至極自然な気はする.

2009年10月26日追記:最新版の使い方はこちらをご参照ください.

2008年02月19日00時26分 | Permalink | 1件のコメント | このエントリーを含むはてなブックマーク

2008年02月15日(金)

mhc2gcal 0.2.0 リリース

mhc2gcalに関するりばにしの記事

リリースしてからすっかり放置プレイ状態の mhc2gcal ですが,ご要望いただいていた proxy 対応と verbose モード,およびご提案いただいていた description の有無を選択できるようにしたものを,バージョン 0.2.0 として作成しました.

2008年08月19日追記:最新版の使い方はこちらをご参照ください.
2009年10月26日追記:最新版の使い方はこちらをご参照ください.

(more...)

2008年02月15日02時27分 | Permalink | 6 Comments | このエントリーを含むはてなブックマーク

2007年05月08日(火)

mhc2gcal : イベント削除時のバグ修正

mhc2gcalに関するりばにしの記事

先月作成した mhc2gcal ですが,指定した期間のイベントを Google Calendar から一度削除するときの挙動がおかしかったので修正してみた.修正したファイルはこちら.

おかしかった挙動は,たとえば2007年05月08日から2007年05月09日までを指定して実行すると,期間外であるはずの前日(2007年05月07日)の全日イベントを削除してしまっていた.まだ Google Calendar の API を理解し切れていないところもあるのだが,試行錯誤の結果現在のバージョンであれば,前日の全日イベントを削除しないようになった.

ちなみにイベント削除機能は,スクリプト内の GCAL_DEL の値を true にしていない限り関係ありません.あしからず.

あと,ときどきエラーが出て止まってしまうことがあるのだが原因が掴めていない.ほとんどの場合,もう一度実行するとエラーが出ずに正常終了するのだが・・・.なんじゃろう.ちょっと追っている余裕はないので,とりあえず放置.

最後になりましたが,毎度くどいようですが,このスクリプトを使う場合は自己責任でお願いします...(くどい).

2009年10月26日追記:最新版の使い方はこちらをご参照ください.

2007年05月08日01時35分 | Permalink | 0 Comments | このエントリーを含むはてなブックマーク

2007年04月13日(金)

mhc2gcal : MHC のスケジュールを Google Calendar にアップロード

mhc2gcalに関するりばにしの記事

スケジュールの共有に Google Calendar を使うことになり,当初は MHC で管理しているスケジュール情報を mhc2ical を使って iCal 形式のファイルに出力し,ブラウザからインポート作業をしていたのだが,なんとも面倒なので自動化することにした.

自動化といっても,出力したファイルをインポートする作業を,ブラウザをエミュレートするライブラリなどで自動化するだけではぬるい(というか,それはそれで自分の力量ではすぐにできるわけではなさそうだが)と考え,思い切って Google Calendar Data API を使って MHC のスケジュールを Google Calendar に直接登録することを企んだ.

MHC は Ruby からいろいろといじれるようにライブラリが用意されている.そこで Google Calendar Data API も Ruby で使うことができれば,一気に解決するのではないかと考え,検索してみたところ RubyForge に gcalapi を発見.早速 gem でインストール.これで環境は整った.

で,完成したスクリプトが,その名も mhc2gcal という安直なネーミング.名前が mhc2ical からインスパイアされており,またプログラムもベースにさせていただいた.また gcalapi の example ディレクトリに入っていた ol2gcal も参考にさせていただいた.

2008年08月19日追記:最新版の使い方はこちらをご参照ください.
2009年10月26日追記:最新版の使い方はこちらをご参照ください.

(more...)

2007年04月13日01時14分 | Permalink | 9 Comments | このエントリーを含むはてなブックマーク