| 15 |
|
|
| 16 |
my %type = ( |
my %type = ( |
| 17 |
txt => {mediatype => 'text/plain', description => 'plain-text'}, |
txt => {mediatype => 'text/plain', description => 'plain-text'}, |
| 18 |
'822' => {mediatype => 'message/rfc822', description => 'IETF RFC 822'}, |
'822' => {mediatype => 'message/rfc822', description => 'IETF RFC 822 Message'}, |
| 19 |
htm => {mediatype => 'text/html', description => 'HTML'}, |
htm => {mediatype => 'text/html', description => 'HTML'}, |
| 20 |
html => {mediatype => 'text/html', description => 'HTML'}, |
html => {mediatype => 'text/html', description => 'HTML'}, |
| 21 |
xml => {mediatype => 'application/xml', description => 'XML'}, |
xml => {mediatype => 'application/xml', description => 'XML'}, |
| 23 |
pdf => {mediatype => 'application/pdf', description => 'PDF'}, |
pdf => {mediatype => 'application/pdf', description => 'PDF'}, |
| 24 |
doc => {mediatype => 'application/msword', description => 'Microsoft Word'}, |
doc => {mediatype => 'application/msword', description => 'Microsoft Word'}, |
| 25 |
xls => {mediatype => 'application/vnd.ms-excel', description => 'Microsoft Excel'}, |
xls => {mediatype => 'application/vnd.ms-excel', description => 'Microsoft Excel'}, |
| 26 |
ppt => {mediatype => 'application/vnd-ms-powerpoint', description => 'Microsoft PowerPoint'}, |
ppt => {mediatype => 'application/vnd.ms-powerpoint', description => 'Microsoft PowerPoint'}, |
| 27 |
bmp => {mediatype => 'image/x-windows-bitmap', description => 'Windows Bitmap'}, |
dvi => {mediatype => 'application/x-dvi', description => 'DVI'}, |
| 28 |
ico => {mediatype => 'image/x-windows-icon', description => 'Windows Icon'}, |
tex => {mediatype => 'application/x-tex', description => 'TeX'}, |
| 29 |
|
bmp => {mediatype => 'image/x-bmp', description => 'Windows Bitmap'}, |
| 30 |
|
ico => {mediatype => 'image/x-icon', description => 'Windows Icon'}, |
| 31 |
png => {mediatype => 'image/png', description => 'PNG'}, |
png => {mediatype => 'image/png', description => 'PNG'}, |
| 32 |
mng => {mediatype => 'video/x-mng', description => 'MNG'}, |
mng => {mediatype => 'video/x-mng', description => 'MNG'}, |
| 33 |
jpg => {mediatype => 'image/jpeg', description => 'JPEG(JFIF)'}, |
jpg => {mediatype => 'image/jpeg', description => 'JPEG(JFIF)'}, |
| 35 |
mpg => {mediatype => 'video/mpeg', description => 'MPEG'}, |
mpg => {mediatype => 'video/mpeg', description => 'MPEG'}, |
| 36 |
mpeg => {mediatype => 'video/mpeg', description => 'MPEG'}, |
mpeg => {mediatype => 'video/mpeg', description => 'MPEG'}, |
| 37 |
cwj => {mediatype => 'application/x-claris-works', description => 'Claris Works 4.0 (Macintosh)'}, |
cwj => {mediatype => 'application/x-claris-works', description => 'Claris Works 4.0 (Macintosh)'}, |
| 38 |
wav => {mediatype => 'audio/x-wav', description => 'WAV audio'}, |
wav => {mediatype => 'audio/x-wav', description => 'WAVE audio'}, |
| 39 |
mp3 => {mediatype => 'audio/mpeg', description => 'MP3'}, |
mp3 => {mediatype => 'audio/mpeg', description => 'MP3'}, |
| 40 |
pl => {mediatype => 'application/x-perl', description => 'Perl Script'}, |
pl => {mediatype => 'application/x-perl', description => 'Perl Script'}, |
| 41 |
pm => {mediatype => 'application/x-perl', description => 'Perl Module'}, |
pm => {mediatype => 'application/x-perl', description => 'Perl Module'}, |
| 42 |
|
rdf => {mediatype => 'application/rdf+xml', description => 'RDF/XML'}, |
| 43 |
|
rss => {mediatype => 'application/rdf+xml', description => 'RSS'}, |
| 44 |
); |
); |
| 45 |
|
|
| 46 |
my %encode = ( |
my %encode = ( |
| 47 |
gz => {description => 'GNU zip'}, |
gz => {description => 'GNU zip'}, |
| 48 |
lzh => {description => 'LHA'}, |
lzh => {description => 'LHA'}, |
| 49 |
lzh => {description => 'ZIP'}, |
zip => {description => 'ZIP'}, |
| 50 |
sj3 => {charset => 'shift_jisx0213', description => 'Shift_JISX0213'}, |
|
| 51 |
sjis => {charset => 'shift_jis', description => 'Shift_JIS'}, |
sj3 => {charset => 'shift_jisx0213',description => 'Shift_JISX0213'}, |
| 52 |
euc => {charset => 'euc-jp', description => 'EUC-JP'}, |
sjis => {charset => 'shift_jis', description => 'Shift_JIS'}, |
| 53 |
|
euc => {charset => 'euc-jp', description => 'EUC-JP'}, |
| 54 |
ej3 => {charset => 'euc-jisx0213', description => 'EUC-JISX0213'}, |
ej3 => {charset => 'euc-jisx0213', description => 'EUC-JISX0213'}, |
| 55 |
u8 => {charset => 'utf-8', description => 'UTF-8'}, |
jis => {charset => '', description => '7bit ISO/IEC 2022'}, |
| 56 |
|
u8 => {charset => 'utf-8', description => 'UTF-8'}, |
| 57 |
); |
); |
| 58 |
|
|
| 59 |
my %lang = ( |
my %lang = ( |
| 91 |
$ret .= $$filea{size}.'octet'.($$filea{size} != 1? 's':''); |
$ret .= $$filea{size}.'octet'.($$filea{size} != 1? 's':''); |
| 92 |
} elsif ($$filea{size} < (1024*1024)) { |
} elsif ($$filea{size} < (1024*1024)) { |
| 93 |
my $d = sprintf('%.2f', $$filea{size}/1024); |
my $d = sprintf('%.2f', $$filea{size}/1024); |
| 94 |
$ret .= $d.'kilooctet'.($d != 1? 's':''); |
$ret .= $d.'ko'.($d != 1? 's':''); |
| 95 |
} elsif ($$filea{size} < (1024*1024*1024)) { |
} elsif ($$filea{size} < (1024*1024*1024)) { |
| 96 |
my $d = sprintf('%.2f', ($$filea{size}/1024)/1024); |
my $d = sprintf('%.2f', ($$filea{size}/1024)/1024); |
| 97 |
$ret .= $d.'Moctet'.($d != 1? 's':''); |
$ret .= $d.'Mo'.($d != 1? 's':''); |
| 98 |
} |
} |
| 99 |
$ret .= '; '; |
$ret .= '; '; |
| 100 |
} |
} |
| 141 |
|
|
| 142 |
=head1 LICENSE |
=head1 LICENSE |
| 143 |
|
|
| 144 |
Copyright 2001,2002 wakaba <wakaba@suika.fam.cx>. |
Copyright 2001-2003 Wakaba <w@suika.fam.cx>. |
|
|
|
|
This program is free software; you can redistribute it and/or modify |
|
|
it under the terms of the GNU General Public License as published by |
|
|
the Free Software Foundation; either version 2 of the License, or |
|
|
(at your option) any later version. |
|
|
|
|
|
This program is distributed in the hope that it will be useful, |
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
GNU General Public License for more details. |
|
|
|
|
|
You should have received a copy of the GNU General Public License |
|
|
along with this program; see the file COPYING. If not, write to |
|
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
|
|
Boston, MA 02111-1307, USA. |
|
|
|
|
|
=head1 CHANGE |
|
| 145 |
|
|
| 146 |
See ChangeLog. |
This program is free software; you can redistribute it and/or modify |
| 147 |
|
it under the terms of the GNU General Public License as published by |
| 148 |
|
the Free Software Foundation; either version 2 of the License, or |
| 149 |
|
(at your option) any later version. |
| 150 |
|
|
| 151 |
|
This program is distributed in the hope that it will be useful, |
| 152 |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 153 |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 154 |
|
GNU General Public License for more details. |
| 155 |
|
|
| 156 |
|
You should have received a copy of the GNU General Public License |
| 157 |
|
along with this program; see the file COPYING. If not, write to |
| 158 |
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
| 159 |
|
Boston, MA 02111-1307, USA. |
| 160 |
|
|
| 161 |
=cut |
=cut |