Mac de friio – Mail reservation script Version 2

しばらく前にホームページの方で公開したONTVサービスからのメールでfriioの録画スクリプトを作り、それを時間になったら実行する為のiCalイベントを作るスクリプト。(文章で書くとややこしい)
自分で使っていてバグを見つけてしまいました。

という事で、バージョン2を置いておきましたので、Mac + ONTV + Mail + iCal + friio な方はお使い下さい。

ちなみにバグの内容ですが…。

概要: dtStartDate / dtEndDateという変数に録画開始/終了日を代入する処理にバグがありました。

前提として、inttvYearには番組開始日の「年」、inttvMonthには番組開始日の「月」、inttvDayには番組開始日の「日」が入っているとします。この状態でdtStartDateに番組開始日を代入する為に次の様な処理をしていました。

  1. set dtStartDate to current date
  2. set year of dtStartDate to inttvYear
  3. set month of dtStartDate to inttvMonth
  4. 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」にする事でとりあえず回避。
おそらくもっとスマートな方法があるのでしょうが、まだ勉強を初めたばかりのウチの能力ではこれが限界 (^^;;

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください