Mercurial > hg > Applications > Calcon
comparison Calcon.pm @ 19:7dfd5644478b
validation
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 11 Oct 2013 09:25:35 +0900 |
parents | 12ddd9dd9fc6 |
children | 3fcdab33e15d |
comparison
equal
deleted
inserted
replaced
18:12ddd9dd9fc6 | 19:7dfd5644478b |
---|---|
2888 } | 2888 } |
2889 | 2889 |
2890 # if ($record{'date'}->is_allday() && $self->{'-fake-allday'}) { | 2890 # if ($record{'date'}->is_allday() && $self->{'-fake-allday'}) { |
2891 # $record{'date'}=$record{'date'}->add($self->{'-time-for-allday'}); | 2891 # $record{'date'}=$record{'date'}->add($self->{'-time-for-allday'}); |
2892 # } | 2892 # } |
2893 my $dtstart = "\nDTSTART;TZID=$timezone:".$self->date($record{'date'}); | 2893 my $dtstart = "\r\nDTSTART;TZID=$timezone:".$self->date($record{'date'}); |
2894 my $dtend = ''; | 2894 my $dtend = ''; |
2895 my $dtstamp = ''; | 2895 my $dtstamp = ''; |
2896 | 2896 |
2897 if (! $record{'date'}->is_allday()) { | 2897 if (! $record{'date'}->is_allday()) { |
2898 if (! defined( $record{'end-date'}) || $record{'end-date'} == $record{'date'} ) { | 2898 if (! defined( $record{'end-date'}) || $record{'end-date'} == $record{'date'} ) { |
2899 # $dtend = "\nDURATION:PT2H"; this is useless for iCal | 2899 # $dtend = "\nDURATION:PT2H"; this is useless for iCal |
2900 $record{'end-date'} = $record{'date'}->add( | 2900 $record{'end-date'} = $record{'date'}->add( |
2901 $self->{'-add-time-for-allday'}); | 2901 $self->{'-add-time-for-allday'}); |
2902 $dtend = "\nDTEND;TZID=$timezone:".$self->date($record{'end-date'}); | 2902 $dtend = "\r\nDTEND;TZID=$timezone:".$self->date($record{'end-date'}); |
2903 } else { | 2903 } else { |
2904 $dtend = "\nDTEND;TZID=$timezone:".$self->date($record{'end-date'}); | 2904 $dtend = "\r\nDTEND;TZID=$timezone:".$self->date($record{'end-date'}); |
2905 } | 2905 } |
2906 } else { | 2906 } else { |
2907 $dtend = ''; | 2907 $dtend = ''; |
2908 $dtstart =~ s/T000000$//; | 2908 # $dtstart =~ s/T000000$//; |
2909 } | 2909 } |
2910 if (defined( $record{'modify-date'})) { | 2910 if (defined( $record{'modify-date'})) { |
2911 $dtstamp = "\nDTSTAMP;TZID=$timezone:".$self->date($record{'modify-date'}); | 2911 $dtstamp = "\r\nDTSTAMP:".$self->date($record{'modify-date'})."Z"; |
2912 } | 2912 } |
2913 | 2913 |
2914 my $summary = ''; | 2914 my $summary = ''; |
2915 my $description = ''; | 2915 my $description = ''; |
2916 if (defined($record{'memo'})) { | 2916 if (defined($record{'memo'})) { |
2924 | 2924 |
2925 if ($description eq $summary) { | 2925 if ($description eq $summary) { |
2926 $description = ""; | 2926 $description = ""; |
2927 } else { | 2927 } else { |
2928 if ($description) { | 2928 if ($description) { |
2929 $description = "\nDESCRIPTION: $description"; | 2929 $description = "\r\nDESCRIPTION: $description"; |
2930 } | 2930 } |
2931 } | 2931 } |
2932 return if (! $description && ! $summary ); | 2932 return if (! $description && ! $summary ); |
2933 | 2933 |
2934 # DURATION:PT1H = "DURATION:PT1H"; | 2934 # DURATION:PT1H = "DURATION:PT1H"; |
2935 # X-WR-CALNAME;VALUE=TEXT:ホーム | 2935 # X-WR-CALNAME;VALUE=TEXT:ホーム |
2936 # X-WR-TIMEZONE;VALUE=TEXT:Asia/Tokyo | 2936 # X-WR-TIMEZONE;VALUE=TEXT:Asia/Tokyo |
2937 # SEQUENCE:$i | 2937 # SEQUENCE:$i |
2938 | 2938 |
2939 $self->print(<<"EOFEOF"); | 2939 $self->print(<<"EOFEOF"); |
2940 BEGIN:VEVENT | 2940 BEGIN:VEVENT\r |
2941 SUMMARY:$summary$dtstart$dtend$description$dtstamp | 2941 SUMMARY:$summary$dtstart$dtend$description$dtstamp\r |
2942 END:VEVENT | 2942 END:VEVENT\r |
2943 EOFEOF | 2943 EOFEOF |
2944 # print "\n"; | 2944 # print "\r\n"; |
2945 } | 2945 } |
2946 | 2946 |
2947 sub date { | 2947 sub date { |
2948 my ($self,$date) = @_; | 2948 my ($self,$date) = @_; |
2949 my ($year,$month,$day,$hour,$min) = $self->localtime($date); | 2949 my ($year,$month,$day,$hour,$min) = $self->localtime($date); |
2976 if ($record{'time'} =~ /(.*)-(.*)/) { | 2976 if ($record{'time'} =~ /(.*)-(.*)/) { |
2977 $record{'time'} = $1; | 2977 $record{'time'} = $1; |
2978 $record{'end-time'} = $2; | 2978 $record{'end-time'} = $2; |
2979 } | 2979 } |
2980 | 2980 |
2981 print "BEGIN:VCARD\n"; | 2981 print "BEGIN:VCARD\r\n"; |
2982 print "VERSION:3.0\n"; | 2982 print "VERSION:3.0\r\n"; |
2983 if(defined $record{'name'}) { | 2983 if(defined $record{'name'}) { |
2984 $data = $record{'name'}; | 2984 $data = $record{'name'}; |
2985 if(0 && defined $record{'name-yomi'}) { | 2985 if(0 && defined $record{'name-yomi'}) { |
2986 $data = join(";",split(/ /,$record{'name-yomi'})); | 2986 $data = join(";",split(/ /,$record{'name-yomi'})); |
2987 print "N:$data\n" if($data); | 2987 print "N:$data\n" if($data); |
3010 if(defined $record{'office'}) { | 3010 if(defined $record{'office'}) { |
3011 $data = "$record{'office'}"; | 3011 $data = "$record{'office'}"; |
3012 if(defined $record{'section'}) { | 3012 if(defined $record{'section'}) { |
3013 $data .= ";".$record{'section'}; | 3013 $data .= ";".$record{'section'}; |
3014 } | 3014 } |
3015 print "ORG:$data\n" if($data); | 3015 print "ORG:$data\r\n" if($data); |
3016 } | 3016 } |
3017 if(defined $record{'title'}) { | 3017 if(defined $record{'title'}) { |
3018 $data = "$record{'title'}"; | 3018 $data = "$record{'title'}"; |
3019 print "TITLE:$data\n" if($data); | 3019 print "TITLE:$data\n" if($data); |
3020 } | 3020 } |
3031 print "ADR;TYPE=WORK;TYPE=PREF:;;$adr1;$adr2;$adr_state;$adr_zip;$adr_country\n" if ($data); | 3031 print "ADR;TYPE=WORK;TYPE=PREF:;;$adr1;$adr2;$adr_state;$adr_zip;$adr_country\n" if ($data); |
3032 print "LABEL;TYPE=WORK;TYPE=PREF:$adr_zip $data\n" if($data); | 3032 print "LABEL;TYPE=WORK;TYPE=PREF:$adr_zip $data\n" if($data); |
3033 } | 3033 } |
3034 if(defined $record{'tel'}) { | 3034 if(defined $record{'tel'}) { |
3035 $data = $record{'tel'}; | 3035 $data = $record{'tel'}; |
3036 print "TEL;TYPE=WORK:$data\n" if($data); | 3036 print "TEL;TYPE=WORK:$data\r\n" if($data); |
3037 } | 3037 } |
3038 if(defined $record{'tel2'}) { | 3038 if(defined $record{'tel2'}) { |
3039 $data = $record{'tel2'}; | 3039 $data = $record{'tel2'}; |
3040 print "TEL;TYPE=CELL:$data\n" if($data); | 3040 print "TEL;TYPE=CELL:$data\r\n" if($data); |
3041 } | 3041 } |
3042 if(defined $record{'fax'}) { | 3042 if(defined $record{'fax'}) { |
3043 $data = $record{'fax'}; | 3043 $data = $record{'fax'}; |
3044 print "TEL;TYPE=FAX:$data\n" if($data); | 3044 print "TEL;TYPE=FAX:$data\r\n" if($data); |
3045 } | 3045 } |
3046 if(defined $record{'mail'}) { | 3046 if(defined $record{'mail'}) { |
3047 $data = $record{'mail'}; | 3047 $data = $record{'mail'}; |
3048 print "EMAIL;INTERNET:$data\n" if($data); | 3048 print "EMAIL;INTERNET:$data\r\n" if($data); |
3049 } | 3049 } |
3050 if(defined $record{'memo'}) { | 3050 if(defined $record{'memo'}) { |
3051 $data = $record{'memo'}; | 3051 $data = $record{'memo'}; |
3052 print "NOTE:$data\n" if($data); | 3052 print "NOTE:$data\n" if($data); |
3053 } | 3053 } |
3054 if(defined $record{'birth'}) { | 3054 if(defined $record{'birth'}) { |
3055 $data = $record{'birth'}; | 3055 $data = $record{'birth'}; |
3056 print "BDAY:".$data->date()."\n" if($data); | 3056 print "BDAY:".$data->date()."\r\n" if($data); |
3057 } | 3057 } |
3058 if(defined $record{'name-yomi'}) { | 3058 if(defined $record{'name-yomi'}) { |
3059 $data = $record{'name-yomi'}; | 3059 $data = $record{'name-yomi'}; |
3060 print "X-CUSTOM1:$data\n" if($data); | 3060 print "X-CUSTOM1:$data\r\n" if($data); |
3061 } | 3061 } |
3062 if(defined $record{'office-yomi'}) { | 3062 if(defined $record{'office-yomi'}) { |
3063 $data = $record{'office-yomi'}; | 3063 $data = $record{'office-yomi'}; |
3064 print "X-CUSTOM2:$data\n" if($data); | 3064 print "X-CUSTOM2:$data\r\n" if($data); |
3065 } | 3065 } |
3066 print "END:VCARD\n"; | 3066 print "END:VCARD\r\n"; |
3067 print "\n"; | 3067 print "\r\n"; |
3068 } | 3068 } |
3069 | 3069 |
3070 #######################################################################/ | 3070 #######################################################################/ |
3071 | 3071 |
3072 package Calcon::Vcard_Apple_write; | 3072 package Calcon::Vcard_Apple_write; |
3113 $record{'name-yomi'} =~ s/^ *//; | 3113 $record{'name-yomi'} =~ s/^ *//; |
3114 } | 3114 } |
3115 if(defined($record{'office-yomi'})) { | 3115 if(defined($record{'office-yomi'})) { |
3116 $record{'office-yomi'} =~ s/^ *//; | 3116 $record{'office-yomi'} =~ s/^ *//; |
3117 } | 3117 } |
3118 $self->print("BEGIN:VCARD\n"); | 3118 $self->print("BEGIN:VCARD\r\n"); |
3119 $self->print("VERSION:3.0\n"); | 3119 $self->print("VERSION:3.0\r\n"); |
3120 if(defined $record{'name'}) { | 3120 if(defined $record{'name'}) { |
3121 $data = $record{'name'}; | 3121 $data = $record{'name'}; |
3122 $self->print("FN:$data\n") if($data); | 3122 $self->print("FN:$data\n") if($data); |
3123 if(0 && defined $record{'name-yomi'}) { | 3123 if(0 && defined $record{'name-yomi'}) { |
3124 $data = join(";",split(/ /,$record{'name-yomi'})); | 3124 $data = join(";",split(/ /,$record{'name-yomi'})); |
3125 $self->print("N:$data\n") if($data); | 3125 $self->print("N:$data\r\n") if($data); |
3126 } else { | 3126 } else { |
3127 $data = join(";",split(/ /,$data)); | 3127 $data = join(";",split(/ /,$data)); |
3128 $self->print("N:$data\n") if($data); | 3128 $self->print("N:$data\r\n") if($data); |
3129 } | 3129 } |
3130 if(defined $record{'name-yomi'}) { | 3130 if(defined $record{'name-yomi'}) { |
3131 my ($last , $first , $last_yomi , $first_yomi ); | 3131 my ($last , $first , $last_yomi , $first_yomi ); |
3132 $last = $first = $last_yomi = $first_yomi = ''; | 3132 $last = $first = $last_yomi = $first_yomi = ''; |
3133 ($last,$first) = split(/ /,$record{'name'}); | 3133 ($last,$first) = split(/ /,$record{'name'}); |
3134 ($last_yomi,$first_yomi) = split(/ /,$record{'name-yomi'}), | 3134 ($last_yomi,$first_yomi) = split(/ /,$record{'name-yomi'}), |
3135 $self->print("X-PHONETIC-LAST-NAME:$last_yomi\n"); | 3135 $self->print("X-PHONETIC-LAST-NAME:$last_yomi\r\n"); |
3136 $self->print("X-PHONETIC-FIRST-NAME:$first_yomi\n"); | 3136 $self->print("X-PHONETIC-FIRST-NAME:$first_yomi\r\n"); |
3137 } | 3137 } |
3138 | 3138 |
3139 # print "fn:$data\n" if($data); | 3139 # print "fn:$data\n" if($data); |
3140 # if(defined $record{'office'}) { | 3140 # if(defined $record{'office'}) { |
3141 # $data = $data.";".$record{'office'}; | 3141 # $data = $data.";".$record{'office'}; |
3143 # print "n:$data\n" if($data); | 3143 # print "n:$data\n" if($data); |
3144 } | 3144 } |
3145 # my $cat = 0; | 3145 # my $cat = 0; |
3146 if(defined $record{'group'}) { | 3146 if(defined $record{'group'}) { |
3147 $data = "$record{'group'}"; | 3147 $data = "$record{'group'}"; |
3148 $self->print("CATEGORIES:$data\n") if($data); | 3148 $self->print("CATEGORIES:$data\r\n") if($data); |
3149 } | 3149 } |
3150 if(defined $record{'office'}) { | 3150 if(defined $record{'office'}) { |
3151 $data = "$record{'office'}"; | 3151 $data = "$record{'office'}"; |
3152 $self->print("ORG:$data;\n") if($data); | 3152 $self->print("ORG:$data;\r\n") if($data); |
3153 # if ($cat==0) { | 3153 # if ($cat==0) { |
3154 # $self->print("CATEGORIES:$data\n") if($data); | 3154 # $self->print("CATEGORIES:$data\n") if($data); |
3155 # } | 3155 # } |
3156 } | 3156 } |
3157 my $title; | 3157 my $title; |
3158 if(defined $record{'section'}) { | 3158 if(defined $record{'section'}) { |
3159 $title = $record{'section'}; | 3159 $title = $record{'section'}; |
3160 } | 3160 } |
3161 if(defined $record{'title'}) { | 3161 if(defined $record{'title'}) { |
3162 $title .= ($title?'\n':'')."$record{'title'}"; | 3162 $title .= ($title?'\r\n':'')."$record{'title'}"; |
3163 $self->print("TITLE:$data\n") if($data); | 3163 $self->print("TITLE:$data\r\n") if($data); |
3164 } | 3164 } |
3165 if(defined $record{'address'}) { | 3165 if(defined $record{'address'}) { |
3166 my $i = $self->{'item'}++; | 3166 my $i = $self->{'item'}++; |
3167 my ($adr1 , $adr2 , $adr_state , $adr_zip , $adr_country ); | 3167 my ($adr1 , $adr2 , $adr_state , $adr_zip , $adr_country ); |
3168 $adr1 = $adr2 = $adr_state = $adr_zip = $adr_country = ''; | 3168 $adr1 = $adr2 = $adr_state = $adr_zip = $adr_country = ''; |
3175 $self->print("ITEM$i.ADR;TYPE=WORK;TYPE=PREF:;;$adr1;$adr2;$adr_state;$adr_zip;$adr_country\n") if ($data); | 3175 $self->print("ITEM$i.ADR;TYPE=WORK;TYPE=PREF:;;$adr1;$adr2;$adr_state;$adr_zip;$adr_country\n") if ($data); |
3176 } | 3176 } |
3177 if(defined $record{'tel'}) { | 3177 if(defined $record{'tel'}) { |
3178 # my $i = $self->{'item'}++; | 3178 # my $i = $self->{'item'}++; |
3179 $data = $record{'tel'}; | 3179 $data = $record{'tel'}; |
3180 $self->print("TEL;TYPE=WORK:$data\n") if($data); | 3180 $self->print("TEL;TYPE=WORK:$data\r\n") if($data); |
3181 } | 3181 } |
3182 if(defined $record{'mobile-tel'}) { | 3182 if(defined $record{'mobile-tel'}) { |
3183 # my $i = $self->{'item'}++; | 3183 # my $i = $self->{'item'}++; |
3184 $data = $record{'mobile-tel'}; | 3184 $data = $record{'mobile-tel'}; |
3185 $self->print("TEL;TYPE=CELL:$data\n") if($data); | 3185 $self->print("TEL;TYPE=CELL:$data\r\n") if($data); |
3186 } | 3186 } |
3187 if(defined $record{'home-tel'}) { | 3187 if(defined $record{'home-tel'}) { |
3188 # my $i = $self->{'item'}++; | 3188 # my $i = $self->{'item'}++; |
3189 $data = $record{'tel'}; | 3189 $data = $record{'tel'}; |
3190 $self->print("TEL;TYPE=HOME:$data\n") if($data); | 3190 $self->print("TEL;TYPE=HOME:$data\r\n") if($data); |
3191 } | 3191 } |
3192 if(defined $record{'tel2'}) { | 3192 if(defined $record{'tel2'}) { |
3193 # my $i = $self->{'item'}++; | 3193 # my $i = $self->{'item'}++; |
3194 $data = $record{'tel2'}; | 3194 $data = $record{'tel2'}; |
3195 $self->print("TEL;TYPE=CELL:$data\n") if($data); | 3195 $self->print("TEL;TYPE=CELL:$data\r\n") if($data); |
3196 } | 3196 } |
3197 if(defined $record{'fax'}) { | 3197 if(defined $record{'fax'}) { |
3198 # my $i = $self->{'item'}++; | 3198 # my $i = $self->{'item'}++; |
3199 $data = $record{'fax'}; | 3199 $data = $record{'fax'}; |
3200 $self->print( "TEL;TYPE=FAX:$data\n") if($data); | 3200 $self->print( "TEL;TYPE=FAX:$data\r\n") if($data); |
3201 } | 3201 } |
3202 if(defined $record{'home-address'}) { | 3202 if(defined $record{'home-address'}) { |
3203 my $i = $self->{'item'}++; | 3203 my $i = $self->{'item'}++; |
3204 my ($adr1 , $adr2 , $adr_state , $adr_zip , $adr_country ); | 3204 my ($adr1 , $adr2 , $adr_state , $adr_zip , $adr_country ); |
3205 $adr1 = $adr2 = $adr_state = $adr_zip = $adr_country = ''; | 3205 $adr1 = $adr2 = $adr_state = $adr_zip = $adr_country = ''; |
3213 # $self->print("item$1.X-ABADR:ja\n") if ($data); | 3213 # $self->print("item$1.X-ABADR:ja\n") if ($data); |
3214 } | 3214 } |
3215 if(defined $record{'mail2'}) { | 3215 if(defined $record{'mail2'}) { |
3216 # my $i = $self->{'item'}++; | 3216 # my $i = $self->{'item'}++; |
3217 $data = $record{'mail2'}; | 3217 $data = $record{'mail2'}; |
3218 $self->print("EMAIL;TYPE=internet;TYPE=HOME:$data\n") if($data); | 3218 $self->print("EMAIL;TYPE=internet;TYPE=HOME:$data\r\n") if($data); |
3219 } | 3219 } |
3220 if(defined $record{'mail'}) { | 3220 if(defined $record{'mail'}) { |
3221 # my $i = $self->{'item'}++; | 3221 # my $i = $self->{'item'}++; |
3222 $data = $record{'mail'}; | 3222 $data = $record{'mail'}; |
3223 $self->print("EMAIL;TYPE=internet;TYPE=PREF:$data\n") if($data); | 3223 $self->print("EMAIL;TYPE=internet;TYPE=PREF:$data\r\n") if($data); |
3224 } | 3224 } |
3225 if(defined $record{'birth'}) { | 3225 if(defined $record{'birth'}) { |
3226 $data = $record{'birth'}; | 3226 $data = $record{'birth'}; |
3227 $self->print("BDAY:".$data->date()."\n") if($data); | 3227 $self->print("BDAY:".$data->date()."\r\n") if($data); |
3228 } | 3228 } |
3229 if(defined $record{'memo'}) { | 3229 if(defined $record{'memo'}) { |
3230 $data = $record{'memo'}; | 3230 $data = $record{'memo'}; |
3231 $self->print("NOTE:$data\n") if($data); | 3231 $self->print("NOTE:$data\r\n") if($data); |
3232 } | 3232 } |
3233 # if(defined $record{'name-yomi'}) { | 3233 # if(defined $record{'name-yomi'}) { |
3234 # $data = $record{'name-yomi'}; | 3234 # $data = $record{'name-yomi'}; |
3235 # $self->print "x-custom1:$data\n" if($data); | 3235 # $self->print "x-custom1:$data\n" if($data); |
3236 # } | 3236 # } |
3237 # if(defined $record{'office-yomi'}) { | 3237 # if(defined $record{'office-yomi'}) { |
3238 # $data = $record{'office-yomi'}; | 3238 # $data = $record{'office-yomi'}; |
3239 # $self->print "x-custom2:$data\n" if($data); | 3239 # $self->print "x-custom2:$data\n" if($data); |
3240 # } | 3240 # } |
3241 $self->print("END:VCARD\n"); | 3241 $self->print("END:VCARD\r\n"); |
3242 $self->print("\n"); | 3242 $self->print("\r\n"); |
3243 } | 3243 } |
3244 | 3244 |
3245 package Calcon::Vcard_N702iD_write; | 3245 package Calcon::Vcard_N702iD_write; |
3246 use strict; | 3246 use strict; |
3247 # use warnings; | 3247 # use warnings; |