Masatoshi Ito の備忘録
旧Blogのアーカイブです。
goo blogの閉鎖に伴い、アーカイブとして移行することにしました。
古い情報やリンク切れなどがあると思いますが、ご了承ください。
予定を携帯電話へ送信
(2007年05月16日 19時27分52秒|Zaurus)
下記サイトを参考にして、ザウルス(SL-C3100)の予定表を携帯電話(W32S)へ赤外線送信するスクリプトを個人的に作成しました。
iCalendar(vCalendar)とザウルスのカレンダーの変換 - SL-C3200であそぶ
http://plaza.rakuten.co.jp/slc3200/diary/200607130000/
実行には以下のモジュールが必用です。
・SimpleZDB
Ruby/Qte普及委員会 - SimpleZDB
http://noir.s7.xrea.com/rubyqte/?SimpleZDB
・OpenOBEX
Private Packages for Zaurus SL-C series
http://www.focv.com/ipkg/
あと sudo が必用です。
下記にソースを載せますが、個人的に作成したものですので、動作の保証はいたしません。m(__)m
あと改行など適宜編集しています。そこそこ便利に使えそうです。
・icssend.sh
iCalendar(vCalendar)とザウルスのカレンダーの変換 - SL-C3200であそぶ
実行には以下のモジュールが必用です。
・SimpleZDB
Ruby/Qte普及委員会 - SimpleZDB
・OpenOBEX
Private Packages for Zaurus SL-C series
あと sudo が必用です。
下記にソースを載せますが、個人的に作成したものですので、動作の保証はいたしません。m(__)m
あと改行など適宜編集しています。そこそこ便利に使えそうです。
・icssend.sh
#!/bin/sh
DIRNAME=`dirname $0`
TMPFILE=/tmp/`basename $0`.ics
${DIRNAME}/zau2ics.rb | nkf -s > ${TMPFILE}
sudo /etc/rc.d/init.d/irda start
for i in 1 2 3 4 5 6 7 8 9 10 ; do
ircp ${TMPFILE}
sleep 1
done
rm -f ${TMPFILE}
sudo /etc/rc.d/init.d/irda stop
・zau2ics.rb
#!/usr/bin/env ruby
require 'date'
require 'time'
require 'simplezdb'
include SimpleZDB
DataBase.open(DataBase::DATEBOOK,true){|db|
print "BEGIN:VCALENDARn"
print "PRODID:-//M.Ito//zau2ics//JPn"
print "VERSION:2.0n"
print "METHOD:PUBLISHn"
db.each {|card|
print "BEGIN:VEVENTn"
if card["ADAY"]==0
printf "DTSTART:%sn",Time.parse(card["TIM1"].strftime(
"%Y%m%dT%H%M%S")).localtime.strftime("%Y%m%dT%H%M%SZ")
printf "DTEND:%sn",Time.parse(card["TIM2"].strftime(
"%Y%m%dT%H%M%S")).localtime.strftime("%Y%m%dT%H%M%SZ")
else
printf "DTSTART:%sn",card["TIM1"].strftime("%Y%m%dT000000")
printf "DTEND:%sn",card["TIM1"].strftime("%Y%m%dT000000")
end
case card["CATEGORY"]
when ["ビジネス"]
print "CATEGORIES:BUSINESSn"
when ["プライベイト"]
print "CATEGORIES:PERSONALn"
when []
else
printf "CATEGORIES:%sn",card["CATEGORY"]
end
printf "SUMMARY:%sn",card["MEM1"].gsub(/n/,"|")
printf "LOCATION:%sn",card["PLCE"]
# if card["ARON"]==0
# printf "AALARM:%sn",card[""]
# end
# if card["RTYP"]!=255 && card["RFRQ"]==0 && card["RPOS"]==0
# printf "RRULE:%sn",card["TIM2"]
# end
print "CLASS:PUBLICn"
printf "DESCRIPTION:%sn",card["DSRP"]
print "END:VEVENTn"
}
print "END:VCALENDARn"
}