#!/bin/perl # libby.miller@bristol.ac.uk 2000-01-23 # gets dates from Palm datebook database, # e.g. /home/user/.jpilot/DatebookDB.pdb # now converts to simple rss+events-like schema # # see also RDF calendar taskforce # http://ilrt.org/discovery/2001/04/calendar/ # # useage: ./date2rdf.pl # # requires the Palm perl modules # # http://search.cpan.org/doc/ARENSB/p5-Palm-1.1.5/Palm/PDB.pm # use Palm::PDB; use Palm::Datebook; my $pdb = new Palm::PDB; #my $dbfile="$ENV{HOME}/.jpilot/DatebookDB.pdb"; my $dbfile="/Users/libby/palmbackup/DatebookDB.pdb"; $pdb->Load($dbfile) || die print "oops! no $dbfile found\n"; $pdb->{sort}; my $label; my $labelt; my $dlabel=undef; my $mbox="none"; $dlabel=$ARGV[0]; $mbox=$ARGV[1]; my $tz=$ARGV[2]; my $tzns="http://ilrt.org/discovery/2001/06/content/tz/"; if($tz eq ""){ $tz="UTC"; } if($mbox eq ""){ $mbox="none"; } my $label; my $labelt; if($dlabel eq "today"){ ($sec, $min, $hour, $mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); $m=$mon+1; $y=$year+1900; $d=$mday; if($m<10){ $m="0".$m; } if($d<10){ $d="0".$d; } $dlabel=$y.$m.$d; #print $dlabel; } my $buf; my $abuf; $abuf=""; $abuf=$abuf."\n\n\t "; $abuf=$abuf."\n\n\t Palm events "; $abuf=$abuf."\n\n\t Palm events file "; $abuf=$abuf."\n\n\t "; ## creation information $abuf=$abuf."\n\t\t"; $abuf=$abuf."\n\t\tGenerated Calendar RDF for $mbox for the date $dlabel"; $abuf=$abuf."\n\t\t"; $abuf=$abuf."\n\t\t$dlabel"; $abuf=$abuf."\n\n\t\t \n\n\t\t\t"; my $i=0; foreach $record (@{$pdb->{records}}){ my $record = {}; $record = $pdb->{records}[$i]; $i++; my $time; my $day; my $date; my $start; my $end; my $endm; my $location; my $desc; chomp; ($time, $desc, $location, $note) = split /\n/, $_, 4; my $m=$record->{"month"}; my $d=$record->{"day"}; if($m<10){ $m="0".$m; } if($d<10){ $d="0".$d; } $label=$record->{"year"}."-".$m."-".$d; $labelt=$record->{"year"}.$m.$d; #print "\nlabel is ".$label."\n"; #print "\nlabelt is ".$labelt."\n"; #print "\ndlabel is ".$dlabel."\n"; ##don't want to print private ones my $priv=$record->{"attributes"}{"private"}; ####remove this part to show all if($priv!=1){ if( ($dlabel eq $labelt) || ($dlabel==undef)){ my $sdh=$record->{"start_hour"}; my $edh=$record->{"end_hour"}; my $sdm=$record->{"start_minute"}; my $edm=$record->{"end_minute"}; if($sdh<10){$sdh="0".$sdh;} if($edh<10){$edh="0".$edh;} if($sdm<10){$sdm="0".$sdm;} if($edm<10){$edm="0".$edm;} $abuf=$abuf."\n\t\t"; $buf=$buf."\n\t\t"; $buf=$buf."\n\t\t\t\t " . $record->{"description"} . ""; $buf=$buf."\n\t\t\t\t".$label."T".$sdh."".$sdm.""; $buf=$buf."\n\t\t\t\t".$label."T".$edh."".$edm."";; $buf=$buf."\n\t\t\n"; } } } $abuf=$abuf."\n\t\t\n\t\t\n\t\t"; $buf=$buf."\n"; $buf=~ s/&/&/g; $abuf=~ s/&/&/g; print $abuf; print $buf;