しばらく前にホームページの方で公開したONTVサービスからのメールでfriioの録画スクリプトを作り、それを時間になったら実行する為のiCalイベントを作るスクリプト。(文章で書くとややこしい)
自分で使っていてバグを見つけてしまいました。
という事で、バージョン2を置いておきましたので、Mac + ONTV + Mail + iCal + friio な方はお使い下さい。
ちなみにバグの内容ですが…。
概要: dtStartDate / dtEndDateという変数に録画開始/終了日を代入する処理にバグがありました。
前提として、inttvYearには番組開始日の「年」、inttvMonthには番組開始日の「月」、inttvDayには番組開始日の「日」が入っているとします。この状態でdtStartDateに番組開始日を代入する為に次の様な処理をしていました。
- set dtStartDate to current date
- set year of dtStartDate to inttvYear
- set month of dtStartDate to inttvMonth
- set day of dtStartDate to inttvDay
1行目: dtStartDateに現在の日付を代入します。
2行目: dtStartDateの年を番組開始日の「年」に変更。
3行目: dtStartDateの月を番組開始日の「月」に変更。
4行目: dtStartDateの日を番組開始日の「日」に変更。
この場合、1月30日に2月3日の番組録画予約を行おうとした場合、3行目の処理でdtStartDateが「2月30日」 になろうとする為実際には存在しない日付になってしまいます。Applescriptはこの様に異常な日付になると翌月になってしまう様でdtStartDate変数は一度「3月30日」になり、最終的には2月3日の番組録画予約をしたつもりが、3月3日に予約されてしまいました。
解決策として、1行目と2行目の間で 一旦dtStartDateの「日」を「1」にする事でとりあえず回避。
おそらくもっとスマートな方法があるのでしょうが、まだ勉強を初めたばかりのウチの能力ではこれが限界 (^^;;