###PERL_LIB: use lib /botm/lib/bsta
use botm_common (
- 'read_data_file', 'write_data_file',
+ 'write_data_file',
'opendir_encoded', 'readdir_decoded', 'unlink_encoded',
'join_path'
);
use bsta_lib (
'STATE', 'INTF_STATE', 'CHAT_STATE',
'write_index',
- 'merge_settings'
+ 'merge_settings',
+ 'get_page_file', 'get_frame_file',
+ 'read_settings', 'read_default', 'read_frame_data', 'read_attachment', 'read_state'
);
binmode STDIN, ':encoding(UTF-8)';
###PERL_PATH_SEPARATOR: PATH_SEPARATOR = /
-###PERL_DATA_PATH: DATA_PATH = /botm/data/bsta/
-###PERL_DATA_ATTACH_PATH: DATA_ATTACH_PATH = /botm/data/bsta/a
###PERL_DATA_CHAT_PATH: DATA_CHAT_PATH = /botm/data/bsta/chat
###PERL_DATA_DEFAULT_PATH: DATA_DEFAULT_PATH = /botm/data/bsta/default
###PERL_DATA_LIST_PATH: DATA_LIST_PATH = /botm/data/bsta/list
-###PERL_DATA_SETTINGS_PATH: DATA_SETTINGS_PATH = /botm/data/bsta/state
###PERL_DATA_STATE_PATH: DATA_STATE_PATH = /botm/data/bsta/state
###PERL_DATA_STORY_PATH: DATA_STORY_PATH = /botm/data/bsta/story
###PERL_DATA_WORDS_PATH: DATA_WORDS_PATH = /botm/data/bsta/words/
delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
###PERL_SET_PATH: $ENV{'PATH'} = /usr/local/bin:/usr/bin:/bin;
-%settings = read_data_file(DATA_SETTINGS_PATH());
+%settings = read_settings();
+%state = read_state();
unless (
($ARGV[0] ne '') && (
($ARGV[0] eq $settings{'password'}) ||
exit 1;
}
-$last_frame = int($settings{'last'});
-%default = read_data_file(DATA_DEFAULT_PATH());
+$last_frame = (int($settings{'last'}) > int($state{'last'})) ?
+ int($settings{'last'}) : int($state{'last'});
+%default = read_default();
for (my $frame=0; $frame<=$last_frame; $frame+=1) {
- my %frame_data =read_data_file(
- join_path(PATH_SEPARATOR(), DATA_PATH(), $frame)
- );
- %frame_data = merge_settings(\%default, \%frame_data);
+ my %frame_data = read_frame_data($frame, \%default);
unless ($frame == 0) {
- push @remove_list, (
- ($frame_data{'page'} ne '') ?
- $frame_data{'page'} :
- sprintf(
- $settings{'frame'},
- $frame, 'htm'
- )
- );
+ push @remove_list, get_page_file($frame, \%frame_data, \%settings);
}
- push @remove_list, (
- ($frame_data{'frame'} ne '') ?
- $frame_data{'frame'} :
- sprintf(
- $settings{'frame'},
- $frame, $frame_data{'ext'}
- )
- );
+ push @remove_list, get_frame_file($frame, \%frame_data, \%settings);
}
push @remove_list, 'goto.htm';
for (my $i=0; ;$i+=1) {
my %file_data;
- %file_data = read_data_file(DATA_ATTACH_PATH().$i);
+ %file_data = read_attachment($i);
if ($file_data{'frame'} eq '') {
last;
}