Changeset 7504 for trunk/gsdl/perllib/plugins/MP3Plug.pm
- Timestamp:
- 2004-05-31T14:41:11+12:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/plugins/MP3Plug.pm
r7496 r7504 44 44 'type' => "flag", 45 45 'deft' => "", 46 'reqd' => "no" } ]; 46 'reqd' => "no" }, 47 { 'name' => "applet_metadata", 48 'desc' => "{MP3Plug.applet_metadata}", 49 'type' => "flag", 50 'deft' => "" }, 51 { 'name' => "metadata_fields", 52 'desc' => "{MP3Plug.metadata_fields}", 53 'type' => "string", 54 'deft' => "Title,Artist,Genre" } ]; 47 55 48 56 my $options = { 'name' => "MP3Plug", … … 62 70 if (!parsargv::parse(\@_, 63 71 q^assoc_images^, \$self->{'assoc_images'}, 72 q^applet_metadata^, \$self->{'applet_metadata'}, 73 q^metadata_fields/.*/Title,Artist,Genre^, \$self->{'metadata_fields'}, 64 74 "allow_extra_options")) { 65 75 print STDERR "\nIncorrect options passed to MP3Plug, check your collect.cfg configuration file\n"; … … 140 150 # Add the file as an associated file ... 141 151 my $section = $doc_obj->get_top_section(); 142 my $ file_type = $self->{'file_type'} || "audio/mp3";152 my $mime_type = $self->{'mime_type'} || "audio/mp3"; 143 153 my $assoc_field = $self->{'assoc_field'} || "mp3"; 144 154 my $assoc_name = $file; 145 155 $assoc_name =~ s/\.mp3$//; 146 156 147 $doc_obj->associate_file($filename, $dst_file, $ file_type, $section);157 $doc_obj->associate_file($filename, $dst_file, $mime_type, $section); 148 158 $doc_obj->add_metadata ($section, "Source", $file); 149 159 $doc_obj->add_metadata ($section, $assoc_field, $assoc_name); 150 160 $doc_obj->add_metadata ($section, "srcurl", $assoc_url); 151 161 162 $self->title_fallback($doc_obj,$section,$file); 163 $doc_obj->add_metadata ($section, "FileFormat", "MP3"); 164 152 165 my $mp3_info = get_mp3info($filename); 153 foreach my $ki ( keys %$mp3_info ) {154 my $mp3_metavalue = $mp3_info->{$ki};155 156 if ($mp3_metavalue !~ m/^\s*$/s) {157 my $mp3_metaname = "mp3:".lc($ki);158 $doc_obj->add_metadata ($section, $mp3_metaname, $mp3_metavalue);159 }160 }161 162 166 my $mp3_tags = get_mp3tag($filename); 163 foreach my $kt ( keys %$mp3_tags ) { 164 my $mp3_metavalue = $mp3_tags->{$kt}; 165 166 if ($mp3_metavalue !~ m/^\s*$/s) { 167 my $kt_len = length($kt); 168 $kt_initial_cap = uc(substr($kt,0,1)).lc(substr($kt,1,$kt_len-1)); 169 my $mp3_metaname = "mp3:".$kt_initial_cap; 170 171 $doc_obj->add_metadata ($section, $mp3_metaname, $mp3_metavalue); 172 if ($mp3_metaname eq "mp3:Title") { 173 $doc_obj->add_metadata ($section, "Title", $mp3_metavalue); 174 } 167 168 my $metadata_fields = $self->{'metadata_fields'}; 169 170 if ($metadata_fields eq "*") { 171 # Locate all info and tag metadata 172 173 foreach my $ki ( keys %$mp3_info ) { 174 my $mp3_metavalue = $mp3_info->{$ki}; 175 176 if ($mp3_metavalue !~ m/^\s*$/s) { 177 my $mp3_metaname = "mp3:".lc($ki); 178 $doc_obj->add_metadata ($section, $mp3_metaname, $mp3_metavalue); 179 } 180 } 181 182 foreach my $kt ( keys %$mp3_tags ) { 183 my $mp3_metavalue = $mp3_tags->{$kt}; 184 185 if ($mp3_metavalue !~ m/^\s*$/s) { 186 my $kt_len = length($kt); 187 $kt_initial_cap = uc(substr($kt,0,1)).lc(substr($kt,1,$kt_len-1)); 188 my $mp3_metaname = "mp3:".$kt_initial_cap; 189 190 $doc_obj->add_metadata ($section, $mp3_metaname, $mp3_metavalue); 191 if ($mp3_metaname eq "mp3:Title") { 192 $doc_obj->add_metadata ($section, "Title", $mp3_metavalue); 193 } 194 } 195 } 196 } 197 else { 198 199 # Restrict metadata to that specifically given 200 foreach my $field (split /,/, $metadata_fields) { 201 202 # check info 203 if (defined $mp3_info->{$field}) { 204 205 my $mp3i_metavalue = $mp3_info->{$field}; 206 207 if ($mp3i_metavalue !~ m/^\s*$/s) { 208 my $mp3i_metaname = "mp3:".lc($field); 209 $doc_obj->add_metadata ($section, $mp3i_metaname, $mp3i_metavalue); 210 } 211 } 212 213 # check tags 214 if (defined $mp3_tags->{$field}) { 215 216 my $mp3t_metavalue = $mp3_tags->{uc($field)}; 217 218 if ($mp3t_metavalue !~ m/^\s*$/s) { 219 my $mp3t_metaname = "mp3:".$field; 220 221 $doc_obj->add_metadata ($section, $mp3t_metaname, $mp3t_metavalue); 222 if ($mp3t_metaname eq "mp3:Title") { 223 $doc_obj->add_metadata ($section, "Title", $mp3t_metavalue); 224 } 225 } 226 } 227 175 228 } 176 229 } … … 178 231 $doc_obj->add_metadata ($section, "srclink", 179 232 "<a href=_httpcollection_/index/assoc/[assocfilepath]/[srcurl]>"); 180 $doc_obj->add_metadata ($section, "srcicon", 181 "<img src=_httpimg_/mp3icon.gif>"); 233 $doc_obj->add_metadata ($section, "srcicon", "<img src=_httpimg_/mp3icon.gif>"); 182 234 $doc_obj->add_metadata ($section, "/srclink", "</a>"); 183 235 184 $doc_obj->add_metadata ($section, "mp3applet", 185 gen_mp3applet("_httpcollection_/index/assoc/[assocfilepath]/[srcurl]")); 186 187 236 my $applet_metadata = $self->{'applet_metadata'}; 237 if (defined $applet_metadata && $applet_metadata ) { 238 my $applet_html 239 = gen_mp3applet("_httpcollection_/index/assoc/[assocfilepath]/[srcurl]"); 240 $doc_obj->add_metadata ($section, "mp3applet", $applet_html); 241 } 188 242 189 243 my $assoc_images = $self->{'assoc_images'}; … … 252 306 # a given plugin. 253 307 254 my $mp3_doc_count = 0; 308 my $mp3_doc_count = 0; ## is this used anywhere now !!??? 255 309 256 310 sub read { … … 278 332 279 333 ## $doc_obj->set_OIDtype ($processor->{'OIDtype'}); 280 $doc_obj->set_OIDtype ("incremental"); 334 $doc_obj->set_OIDtype ("incremental"); # this is done to avoid hashing content of file 281 335 $doc_obj->add_utf8_metadata($doc_obj->get_top_section(), "$self->{'plugin_type'}", "1"); 282 336
Note:
See TracChangeset
for help on using the changeset viewer.