- Timestamp:
- 2013-05-09T16:33:05+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/plugins/MetadataCSVPlugin.pm
r24971 r27321 145 145 my $found_filename_field = 0; 146 146 for (my $i = 0; $i < scalar(@csv_file_fields); $i++) { 147 # Remove any spaces from the field names 147 # Remove any spaces from the field names, and surrounding quotes too 148 148 $csv_file_fields[$i] =~ s/ //g; 149 $csv_file_fields[$i] =~ s/^"//; 150 $csv_file_fields[$i] =~ s/"$//; 151 149 152 if ($csv_file_fields[$i] eq "Filename") { 150 153 $found_filename_field = 1; … … 183 186 $csv_line_metadata{$csv_file_fields[$i]} = []; 184 187 } 185 push (@{$csv_line_metadata{$csv_file_fields[$i]}}, $1); 188 # remove any surrounding quotes. (When exporting to CSV, some spreadsheet 189 # programs add quotes even around field values that don't contain commas.) 190 my $value = $1; 191 $value =~ s/^"//; 192 $value =~ s/"$//; 193 push (@{$csv_line_metadata{$csv_file_fields[$i]}}, $value); 186 194 } 187 195 } … … 212 220 $csv_line_filename = &util::filename_to_regex($csv_line_filename); 213 221 214 &extrametautil::setmetadata($extrametadata, $csv_line_filename, \%csv_line_metadata); 215 &extrametautil::addmetakey($extrametakeys, $csv_line_filename); 222 if (defined &extrametautil::getmetadata($extrametadata, $csv_line_filename)) { # merge with existing meta 223 224 my $file_metadata_table = &extrametautil::getmetadata($extrametadata, $csv_line_filename); 225 226 foreach my $metaname (keys %csv_line_metadata) { 227 # will create new entry if one does not already exist 228 push(@{$file_metadata_table->{$metaname}}, @{$csv_line_metadata{$metaname}}); 229 } 230 231 # no need to push $file on to $extrametakeys as it is already in the list 232 } else { # add as new meta 233 234 &extrametautil::setmetadata($extrametadata, $csv_line_filename, \%csv_line_metadata); 235 &extrametautil::addmetakey($extrametakeys, $csv_line_filename); 236 } 216 237 # record which file the metadata came from 217 238 if (!defined &extrametautil::getmetafile($extrametafile, $csv_line_filename)) {
Note:
See TracChangeset
for help on using the changeset viewer.