Masaatoshi Ito の備忘録

主にザウルス(SL-C3100)に関する備忘録を書いています。更新停滞中&書く内容迷走中…。

予定を携帯電話へ送信

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
#!/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"
}

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Opera などのキー操作 | トップ | tDiary のインストール »
最新の画像もっと見る

コメントを投稿

Zaurus」カテゴリの最新記事