Changeset 26696
- Timestamp:
- 2013-01-11T18:30:22+13:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gs3-extensions/html-to-expeditee/trunk/src/perllib/cgiactions/ExpediteeExportAction.pm
r26629 r26696 51 51 { 52 52 "generate-frame" => { 'compulsory-args' => [ "fn", "json" ], 53 'optional-args' => [ ] },53 'optional-args' => ['assoc'] }, 54 54 }; 55 55 … … 73 73 my $gsdlhome = $self->{'gsdlhome'}; 74 74 75 my $assocfilepath = $self->{'assoc'}; 76 75 77 my $site = $self->{'site'}; 76 78 my $collect_dir = $gsdl_cgi->get_collection_dir($site); … … 79 81 80 82 my $json_str_unicode = $self->{'json'}; 81 82 my $found = $self->{'found'};83 83 84 84 if (!Encode::is_utf8( $json_str_unicode )) { … … 97 97 98 98 my $expeditee_frame_io = new ExpediteeFrameIO($output_dir,"kgas1A"); 99 $expeditee_frame_io->buildFrame($exp_frame_tree); 99 100 100 $expeditee_frame_io->buildFrame($exp_frame_tree); 101 my $last = 0; #check if new frame is replacing/will be the last frame in the frameset. 102 103 if($fn == -1){ 104 #get last frame number and add 1. 105 #BUT what if a matching frame already exists for this document but we just haven't 106 #created a frameID metadata for that document yet - sol'n: at this stage, just use 107 #original code of reading file names 108 109 my $export_dir = &util::filename_cat($collect_dir,$collect,"export"); 110 my $frameInf = "$export_dir\\frame.inf"; 111 my $getFn = ""; 112 my @files; 113 114 opendir DIR, $output_dir or die "cannot open output directory $output_dir: $!"; 115 @files = readdir DIR; 116 closedir DIR; 117 118 my $found = 0; 119 my $frameNumString; 120 for my $file(@files){ 121 if($file =~ m/\d/){ 122 123 my $fullFile = "$export_dir\\$file"; 124 open FILE, $fullFile or die $!; 125 my @lines = <FILE>; 126 my $numLines = scalar (@lines); 127 my $counter = 1; 128 129 for my $line(@lines){ 130 131 if($line eq "T \@assocfilepath $assocfilepath\n"){ 132 $frameNumString = $fullFile; 133 134 #extract frame number out of file name 135 my @getFrameNumArray = split('\\\\',$frameNumString); 136 @getFrameNumArray = reverse(@getFrameNumArray); 137 138 $fn = $getFrameNumArray[0]; 139 140 $found = 1; 141 142 if($counter == $numLines){ 143 $last = 1; 144 } 145 } 146 147 $counter = $counter + 1; 148 } 149 150 close(FILE); 151 } 152 } 153 154 unless($found){ 155 #try to get frame number from frame.inf. 156 if(-e $frameInf){ 157 158 open FRAME_INF, $frameInf or die $!; 159 my @lines = <FRAME_INF>; 160 161 $fn = $lines[0]; 162 163 #get number from string 164 $fn =~ s/[^0-9]//g; 165 $fn = $fn + 1; 166 167 $last = 1; 168 }else{ 169 printf "$frameInf not found\n"; 170 $fn = 1; 171 $last = 1; 172 } 173 } 174 175 } 176 177 101 178 102 179 if($expeditee_frame_io->saveFrame("$fn.exp")){ 103 #need to determine if $fn is followed by another number or $fn is the last number in the frameset.104 105 #if $fn is last number, write out next free frame num106 unless($found){107 # write out next free frame num108 $expeditee_frame_io->saveLastFrameNumber($fn );180 181 printf "*** $fn"; 182 183 if($last){ 184 #update last frame number 185 $expeditee_frame_io->saveLastFrameNumber($fn,$collect); 109 186 } 110 111 #otherwise just carry on.112 187 113 $gsdl_cgi->generate_message(" ItemExported to Expeditee $fn");188 $gsdl_cgi->generate_message("Document Exported to Expeditee $fn"); 114 189 }else{ 115 190 $gsdl_cgi->generate_error("Failed to save frame number $fn");
Note:
See TracChangeset
for help on using the changeset viewer.