]> bicyclesonthemoon.info Git - ott/bsta/blobdiff - reset.1.pl
input validation; goto form; show version; 2 words password
[ott/bsta] / reset.1.pl
index a7ee374f33ac81e4d4eabe88778fcde40f384968..9aa95418b656d4ea255f9f5f1a9c0a324c495f65 100644 (file)
@@ -26,14 +26,16 @@ use Encode ('encode', 'decode');
 
 ###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)';
@@ -43,12 +45,9 @@ decode_argv();
 
 ###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/
@@ -69,7 +68,8 @@ my @remove_list;
 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'}) ||
@@ -80,38 +80,22 @@ unless (
        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;
        }