###PERL_LIB: use lib /botm/lib/bsta
use botm_common (
+ 'HTTP_STATUS',
'read_header_env',
'read_data_file', 'write_data_file',
'url_query_decode',
'join_path',
- 'open_encoded'
+ 'open_encoded',
+ 'http_header_status',
);
use bsta_lib (
'STATE', 'TEXT_MODE', 'INTF_STATE',
my %http;
my %cgi;
my %frame_data;
+my %prev_frame_data;
my %next_frame_data;
my %default;
my %settings;
my $method;
my $frame;
my $frame_data_path;
+my $prev_frame_data_path;
my $next_frame_data_path;
my $password;
my $password_ok;
$method = $1;
}
else{
- exit fail_method($ENV{'REQUEST_METHOD'}, 'GET, POST, HEAD');
+ exit fail_method($ENV{'REQUEST_METHOD'}, ['GET', 'POST', 'HEAD']);
}
%http = read_header_env(\%ENV);
else {
$new_state{'state'} = STATE->{'ready'};
}
- write_data_file($fh, '', '', \%new_state);
+ write_data_file($fh, \%new_state);
}
}
elsif (
$r = write_index(\%state, \%settings);
}
if ($r) {
- $r = write_data_file($fh, '','', \%state);
+ $r = write_data_file($fh, \%state);
}
unless ($r) {
# FAILED ONG! Story as if it was inactive!
$state{'state'} = STATE->{'inactive'};
}
-$next_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame+1);
-%next_frame_data = read_data_file($next_frame_data_path);
-
-# apply defaults
-%frame_data = merge_settings(\%default, \%frame_data);
-%next_frame_data = merge_settings(\%default, \%next_frame_data);
-
$timer = int($state{'nextong'}) - $time;
$ongtime = int($state{'ongtime'});
if($ongtime == 0) {
)
) {
$access = 1;
+ if ($frame > 0) {
+ $prev_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame-1);
+ %prev_frame_data = read_data_file($prev_frame_data_path);
+ }
+ $next_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame+1);
+ %next_frame_data = read_data_file($next_frame_data_path);
+
+ %frame_data = merge_settings(\%default, \%frame_data);
+ %prev_frame_data = merge_settings(\%default, \%prev_frame_data);
+ %next_frame_data = merge_settings(\%default, \%next_frame_data);
}
else {
$access = 0;
1, # as list
);
-print "Content-type: text/html\n";
-if(!$access) {
- print "Status: 403 Forbidden\n";
+if (!$access) {
+ print http_header_status(HTTP_STATUS->{'forbidden'});
}
-print "\n";
+print "Content-type: text/html; charset=UTF-8\n\n";
if($method eq 'HEAD') {
exit;
}
\%state,
\%settings,
\%frame_data,
- \%next_frame_data,
+ $access ? \%prev_frame_data : \%frame_data,
+ $access ? \%next_frame_data : \%frame_data,
\%words_data,
);