*概要 [#b6e04398]
-[[ISU>http://www.isu.org/]]の[[公式ページ>http://www.isu.org/vsite/vnavsite/page/directory/0,10853,4844-182502-199720-nav-list,00.html]]に表示されている公式イベントの数々を,iCalender形式に変換するスクリプトを作った.
-ISU公認のフィギュアスケートのイベント,試合のカレンダー,年間予定表をGoogleカレンダーにインポートできます.
-リンク報告はいりませんが,カレンダーへの直接リンクは避けて下さい.
-(update 3. Oct. 2011)
-7月末頃からずーっとアクセス不可の状態だった模様.本日復旧作業を行ったので,向こう24時間でアクセスできるようになるはずです.

*使い方 [#kb0a9268]
**Google Calendarの場合 [#e7af17f8]
-下記ボタンを押せば良い."''ISU Figure Skate''"と言う名前のカレンダーがインポートされる.&br;
[[http://www.google.com/calendar/images/ext/gc_button6_ja.gif>http://www.google.com/calendar/render?cid=http%3A%2F%2Ftessy.org%2Fphpworks%2Fisu-figure-calendar.php]]
-手動でインポートするためのリンクは[[こちら>http://tessy.org/phpworks/isu-figure-calendar.php]]
-ただし,インポート後カレンダーに反映されるまで6時間ほど要する模様

**その他のiCalendar対応ソフト [#a23b0be8]
-[[こちらのリンク>http://tessy.org/phpworks/isu-figure-calendar.php]]から適当な名前でコンピュータに保存し,各ソフトでインポートして下さい.
-可能ならば,URLでインポートした方が,動的に更新されて便利だと思います.

*仕様/内部構造 [#w33ff30d]
+ISUの該当ページからHTMLをダウンロード
+HTML構文解析をして各イベントを抽出
++CANCELEDは表示せず
++NEW DATEとなっているイベントを特別扱いはしない
++場所を抽出
++概要の2行目以降は詳細に追加
+iCalendar形式に変換して出力
-こんな感じで変換しています.
-残念ながら,当サーバではPHPからリモートでファイルの取得は認められていないので,1日1回ISUのサーバからダウンロードしています.
-また,Googleカレンダー側からは6時間に1回程度更新がかかる模様.
-と言う訳で,ISUでカレンダーが更新されても,お手元のGoogle Calendarに更新されるまで最悪30時間かかる場合があります.
-また,前述の通り初回のインポート後カレンダー画面に反映されるまで約6時間かかる模様です.
-ISU側では機械生成してるので,構文解析には問題が無いはずですが,ISU側が仕様変更した場合は解析に失敗します.

*感想 [#ofb763b2]
-カッとなって作った.今は反省している.
-2007−2008年頃には,こういう公開カレンダーがゴロゴロしていた.(ex.F1の日程とか,○○のイベント日とか)
-しかし,公開カレンダーに公開しちゃいけない予定をぶち込むユーザが後を断たなかったので,Google側が仕方なく公開カレンダーの検索を止めた.
-願わくば,一旦全部非公開カレンダーにした上で,カレンダーの検索は残しておいて欲しかったのだがなあ

*履歴 [#v5daefc4]
-Ver 1.00 2009 Sep.17 初公開
-Ver 1.01 2009 Nov.10 Googleで読み込めなくなったので,X-WR-CALDESC節を削除
-Ver 1.02 2009 Dec.7  Googleが読み込まなくなったので,URLを変更
-Ver 1.03 2010 Jul.5  Googleカレンダーの仕様変更に伴い,イベントの終了(DTEND)をわざと1日増やして吐き出すように変更
-Ver 1.04 2011 Oct.3  ローカルにダウンロードする際のファイル名を修正
-Ver 1.05 2012 Feb.1  iCalendarのヘッダを一部修正

*要望/バグ報告/賞賛のお言葉など [#ce948842]
と思ったのですが,SPAMのPOSTに汚されてどうしようもなくなったので,コメント欄は一時閉鎖します.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS