root/gs3-extensions/html-to-expeditee/trunk/src/perllib/cgiactions/HtmlToExpediteeAction.pm @ 24936

Revision 24936, 2.9 KB (checked in by davidb, 8 years ago)

Tidy up of code, removing commented out lines

Line 
1###########################################################################
2#
3# HtmlToExpediteeAction.pm --
4# A component of the Greenstone digital library software
5# from the New Zealand Digital Library Project at the
6# University of Waikato, New Zealand.
7#
8# Copyright (C) 2009 New Zealand Digital Library Project
9#
10# This program is free software; you can redistr   te it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 2 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU General Public License for more details.
19#
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23#
24###########################################################################
25
26package HtmlToExpediteeAction;
27
28use strict;
29
30use cgiactions::baseaction;
31
32use ExpediteeFrameIO;
33use JSON;
34
35
36BEGIN {
37#    unshift (@INC, "$ENV{'GSDLHOME'}/perllib/cpan/perl-5.8");
38}
39
40
41@HtmlToExpediteeAction::ISA = ('baseaction');
42
43
44
45# c=collect and site=xxxx implicitly handled by code
46# 'c' is handled by baseaction, site is tested for only if greenstone3
47
48
49my $action_table =
50{
51    "generate-frame"     => { 'compulsory-args' => [ "fn", "json" ],
52                  'optional-args'   => [] },
53};
54
55
56sub new
57{
58    my $class = shift (@_);
59    my ($gsdl_cgi,$iis6_mode) = @_;
60
61    my $self = new baseaction($action_table,$gsdl_cgi,$iis6_mode);
62
63    return bless $self, $class;
64}
65
66
67sub generate_frame
68{
69    my $self = shift @_;
70
71    my $username  = $self->{'username'};
72    my $collect   = $self->{'collect'};
73    my $gsdl_cgi  = $self->{'gsdl_cgi'};
74    my $gsdlhome  = $self->{'gsdlhome'};
75
76    my $site = $self->{'site'};
77    my $collect_dir = $gsdl_cgi->get_collection_dir($site);
78
79    my $fn = $self->{'fn'};
80
81    # no need to lock collection (??), the operation is read only
82
83    my $json_str_unicode = $self->{'json'};
84    my $json_str_utf8 = Encode::encode("utf8",$json_str_unicode);
85    my $exp_frame_tree = decode_json $json_str_utf8;
86   
87    my $output_dir = &util::filename_cat($collect_dir,$collect,"export");
88
89    if (!-d $output_dir) {
90    &util::mk_dir($output_dir);
91    }
92    my $frame_filename = &util::filename_cat($output_dir,"$fn.exp");
93
94    my $expeditee_frame_io = new ExpediteeFrameIO();
95   
96    $expeditee_frame_io->buildFrame($exp_frame_tree);
97
98    if ($expeditee_frame_io->saveFrame($frame_filename)) {
99   
100    # write out next free frame num
101    $expeditee_frame_io->saveNextFreeFrame($fn+1);
102
103    $gsdl_cgi->generate_message("html-to-expeditee saved frame $fn");
104    }
105    else {
106    $gsdl_cgi->generate_error("Failed to open $frame_filename for output");
107    }
108}
109
110
1111;
Note: See TracBrowser for help on using the browser.