]> bicyclesonthemoon.info Git - ott/bsta/blobdiff - ong.1.pl
Generate static viewer pages
[ott/bsta] / ong.1.pl
index c31009d2bf43bf95bf0e68bed8b3e51e0643ea1b..aec693a24adab7f97dbe9795ed3061ce41aeadf3 100644 (file)
--- a/ong.1.pl
+++ b/ong.1.pl
@@ -27,13 +27,19 @@ use Encode ('encode', 'decode');
 ###PERL_LIB: use lib /botm/lib/bsta
 use botm_common (
        'read_data_file', 'write_data_file',
-       'open_encoded'
+       'open_encoded',
+       'join_path'
 );
 use bsta_lib (
        'STATE',
-       'ong'
+       'ong',
+       'write_static_viewer_page', 'write_index'
 );
 
+###PERL_PATH_SEPARATOR:     PATH_SEPARATOR     = /
+
+###PERL_DATA_PATH:          DATA_PATH          = /botm/data/bsta/
+###PERL_DATA_DEFAULT_PATH:  DATA_DEFAULT_PATH  = /botm/data/bsta/default
 ###PERL_DATA_SETTINGS_PATH: DATA_SETTINGS_PATH = /botm/data/bsta/settings
 ###PERL_DATA_STATE_PATH:    DATA_STATE_PATH    = /botm/data/bsta/state
 
@@ -48,6 +54,8 @@ srand ($time-$$);
 my %settings;
 my %state;
 my %goto_list;
+my %default;
+my %frame_data;
 
 my $fh;
 my $ongstate;
@@ -112,6 +120,11 @@ else {
                                if ($ongstate == STATE->{'ready'}) {
                                        print 'next frame: '.$frame."\n";
                                        
+                                       %default = read_data_file(DATA_DEFAULT_PATH());
+                                       %frame_data = read_data_file(
+                                               join_path(PATH_SEPARATOR(), DATA_PATH(), $frame)
+                                       );
+                                       
                                        $r = ong (
                                                $frame, # frame ID
                                                $time,  # ONG time
@@ -119,11 +132,10 @@ else {
                                                0,      # update
                                                1,      # print
                                                \%settings,
-                                               '',     # %default
-                                               '',     # %frame_data
+                                               \%default,
+                                               \%frame_data,
                                                ''      # %goto_list
                                        );
-                                       
                                        if ($r) {
                                                $state{'last'}   = $frame;
                                                $state{'state'}  = 1;
@@ -132,6 +144,63 @@ else {
                                                $state{'ip3'}    = '';
                                                $state{'ongtime'}= $timer;
                                                print "ONG\n";
+                                               
+                                               my %frame_1_data;
+                                               my %frame_2_data;
+                                               my %frame_3_data;
+                                               if ($frame >= 1) {
+                                                       %frame_1_data = read_data_file(
+                                                               join_path(PATH_SEPARATOR(), DATA_PATH(), $frame-1)
+                                                       );
+                                               }
+                                               if ($frame >= 2) {
+                                                       %frame_2_data = read_data_file(
+                                                               join_path(PATH_SEPARATOR(), DATA_PATH(), $frame-2)
+                                                       );
+                                               }
+                                               if ($frame >= 3) {
+                                                       %frame_3_data = read_data_file(
+                                                               join_path(PATH_SEPARATOR(), DATA_PATH(), $frame-3)
+                                                       );
+                                               }
+                                               if ($frame >= 2)
+                                               {
+                                                       print 'static page '.($frame-1);
+                                                       $r = write_static_viewer_page(
+                                                               $frame-1, # frame ID
+                                                               \%state,
+                                                               \%settings,
+                                                               \%default,
+                                                               \%frame_1_data, # frame data
+                                                               \%frame_2_data, # prev frame data
+                                                               \%frame_data,   # next frame data
+                                                               '' # words data
+                                                       );
+                                                       print (($r) ? " OK\n" : " FAIL\n");
+                                               }
+                                               if ($frame >= 3)
+                                               {
+                                                       print 'static page '.($frame-2);
+                                                       $r = write_static_viewer_page(
+                                                               $frame-1, # frame ID
+                                                               \%state,
+                                                               \%settings,
+                                                               \%default,
+                                                               \%frame_2_data, # frame data
+                                                               \%frame_3_data, # prev frame data
+                                                               \%frame_1_data, # next frame data
+                                                               '' # words data
+                                                       );
+                                                       print (($r) ? " OK\n" : " FAIL\n");
+                                               }
+                                               if ($frame <= 2) {
+                                                       print 'index';
+                                                       $r = write_index(
+                                                               \%state,
+                                                               \%settings
+                                                       );
+                                                       print (($r) ? " OK\n" : " FAIL\n");
+                                               }
                                        }
                                        else {
                                                print "NO ONG\n";