概要

  • ISU公式ページに表示されている公式イベントの数々を,iCalender形式に変換するスクリプトを作った.
  • ISU公認のフィギュアスケートのイベント,試合のカレンダー,年間予定表をGoogleカレンダーにインポートできます.
  • リンク報告はいりませんが,カレンダーへの直接リンクは避けて下さい.
  • (update 3. Oct. 2011)
  • 7月末頃からずーっとアクセス不可の状態だった模様.本日復旧作業を行ったので,向こう24時間でアクセスできるようになるはずです.

使い方

Google Calendarの場合

  • 下記ボタンを押せば良い."ISU Figure Skate"と言う名前のカレンダーがインポートされる.
    http://www.google.com/calendar/render?cid=http%3A%2F%2Ftessy.org%2Fphpworks%2Fisu-figure-calendar.php
  • 手動でインポートするためのリンクはこちら
  • ただし,インポート後カレンダーに反映されるまで6時間ほど要する模様

その他のiCalendar対応ソフト

  • こちらのリンクから適当な名前でコンピュータに保存し,各ソフトでインポートして下さい.
  • 可能ならば,URLでインポートした方が,動的に更新されて便利だと思います.

仕様/内部構造

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

感想

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

履歴

  • 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のヘッダを一部修正

要望/バグ報告/賞賛のお言葉など

と思ったのですが,SPAMのPOSTに汚されてどうしようもなくなったので,コメント欄は一時閉鎖します.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-01 (水) 12:55:32 (1849d)