[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:02220] patch for mhc2ol.in
野口です。
以前こちらでアドバイスをいただき、mhc でスケジュールの登録/削除を行
うと自動的に Outlook へ同期するように、以下の hook をしかけています。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
(add-hook 'mhc-draft-finish-hook
(lambda ()
(shell-command "/usr/bin/ruby /usr/bin/mhc2ol -N -H &")))
(add-hook 'mhc-delete-file-hook
(lambda ()
(shell-command "/usr/bin/ruby /usr/bin/mhc2ol -N -H &")))
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
現行の mhc2ol を実行すると、すでに過去3ヶ月分の完了したスケジュール
(Outlook 側の操作で、アラーム解除済み)が上書きされて、「過去のアラーム」
がどばっと出てきてしまうという問題があります。
そこで、mhc2ol でに以下の変更を加えてみました。
"-A" オプションを新設しました。
"-A"をつけると
mhc2ol で Export する際に「過去分のスケジュール」については「アラーム設
定(X-SC-Alarm: )」を無効にして Export する。
という動作になります。(オプションを指定しなければ、従来通りの動作)
以上、ご検討いただければ幸いです。
--
NOGUCHI Yusuke <nogunogu@xxxxxxxxxxxxxxxxx>
*** mhc2ol.in.org Mon May 2 07:55:08 2005
--- mhc2ol.in Mon Oct 2 17:46:20 2006
***************
*** 65,70 ****
--- 65,78 ----
[@stime, @etime]
end
+ def get_sdatetime
+ Time .local(@sdate. y, @sdate. m, @sdate .d, @stime .hh, @stime .mm)
+ end
+
+ def get_edatetime
+ Time .local(@edate. y, @edate. m, @edate .d, @etime .hh, @etime .mm)
+ end
+
def handle_recurrence(ol_appoint)
end
***************
*** 183,189 ****
def usage
print '
! usage: mhc2ol [-a | -i | -d | -N] [-H] [-n] [-s] [-m] [-r dir] [-c category] [YYYYMMDD-yyyymmdd]
mhc2ol -- Add/Copy mhc articles to Outlook.
--- 191,197 ----
def usage
print '
! usage: mhc2ol [-a | -i | -d | -N] [-A] [-H] [-n] [-s] [-m] [-r dir] [-c category] [YYYYMMDD-yyyymmdd]
mhc2ol -- Add/Copy mhc articles to Outlook.
***************
*** 205,210 ****
--- 213,219 ----
~/Mail/schedule
-c : Copy only the mhc articles of which the category
matches the specified regexp.
+ -A : Disable reminder if the mhc article already has been passed.
YYYYMMDD-yyyymmdd : set a start and end date of scanning mhc.
if omitted, scan from 3 months ago to
***************
*** 341,346 ****
--- 350,356 ----
@@flag_export_part = 'all' # 'all' || 'body_only'
@@flag_noharm = false
@@flag_timestamp = false
+ @@flag_disable_passed_sch = false
@@mhc_category_name = 'MHC-sch'
@@additional_category = false
***************
*** 475,482 ****
# a reminder is valid for a future schedule.
if sch .alarm() != nil then
! appoint .ReminderSet = true
! appoint .ReminderMinutesBeforeStart = sch .alarm() / 60
else
appoint .ReminderSet = false
end
--- 485,496 ----
# a reminder is valid for a future schedule.
if sch .alarm() != nil then
! if period .get_sdatetime >= Time .now && $flag_disable_passed_sch
! appoint .ReminderSet = true
! appoint .ReminderMinutesBeforeStart = sch .alarm() / 60
! else
! appoint .ReminderSet = false
! end
else
appoint .ReminderSet = false
end
***************
*** 752,757 ****
--- 766,775 ----
@@flag_additional_category = flag
end
+ def Exporter.set_flag_disable_passed_sch(flag)
+ @@set_flag_disable_passed_sch = flag
+ end
+
def Exporter.to_ol_date(date)
format("%4d/%02d/%02d", date .y(), date .m(), date .d()) if date
end
***************
*** 775,780 ****
--- 793,799 ----
$flag_separation = false
$flag_discreet = false
$flag_additional_category = false
+ $flag_disable_passed_sch = false
while ARGV .length > 0
case ARGV[0]
***************
*** 804,809 ****
--- 823,830 ----
$flag_separation = true
when '-m'
$flag_additional_category = true
+ when '-A'
+ $flag_disable_passed_sch = true
else
usage()
end
***************
*** 850,855 ****
--- 871,877 ----
Exporter .set_flag_noharm($flag_noharm)
Exporter .set_flag_timestamp($flag_timestamp)
Exporter .set_flag_additional_category($flag_additional_category)
+ Exporter .set_flag_disable_passed_sch($flag_disable_passed_sch)
exporter = Exporter .new(mdb, outlook)
exporter .set_category_regexp($flag_category_regexp)
exporter .delete_ol_schedules()