From: b <rowerynaksiezycu@gmail.com>
Date: Sat, 15 Mar 2025 20:26:32 +0000 (+0000)
Subject: OTT links
X-Git-Tag: v1.2.12~2
X-Git-Url: http://bicyclesonthemoon.info/git-projects/?a=commitdiff_plain;h=9d145dd5e6b1e136d3c3e6d4bb735b83facbfa69;p=ott%2Fbsta

OTT links
---

diff --git a/botm-common b/botm-common
index 111fb5f..b3ffb0f 160000
--- a/botm-common
+++ b/botm-common
@@ -1 +1 @@
-Subproject commit 111fb5f38624401ac7f332dd8bf7fa65e7bf5b23
+Subproject commit b3ffb0f0c3c240103a57c98c930d806f748f05a1
diff --git a/bsta_lib.1.pm b/bsta_lib.1.pm
index 0900f0b..e0da5bc 100644
--- a/bsta_lib.1.pm
+++ b/bsta_lib.1.pm
@@ -103,6 +103,9 @@ use botm_common (
 ###PERL_WWW_GOTO_PATH:      WWW_GOTO_PATH      = /botm/www/1190/bsta/goto.htm
 ###PERL_WWW_INDEX_PATH:     WWW_INDEX_PATH     = /botm/www/1190/bsta/index.htm
 
+###PERL_OTT_VIEW_URL:       OTT_VIEW_URL       = /ott/view
+###PERL_OTT_MVIEW_URL:      OTT_MVIEW_URL      = /ott/mview
+
 ###PERL_SCHEME:             SCHEME             = http
 ###PERL_WEBSITE:            WEBSITE            = 1190.bicyclesonthemoon.info
 ###PERL_WEBSITE_NAME:       WEBSITE_NAME       = Bicycles on the Moon
@@ -703,7 +706,7 @@ sub print_html_body_end {
 		my @time_tab = gmtime($gen_time);
 		print $fh '   <div class="when" id="generated" >'."\n";
 		print $fh sprintf (
-			'    Page generated %04d.%02d.%02d %02d:%02d:%02d UTC.'."\n",
+			'    HTML generated %04d.%02d.%02d %02d:%02d:%02d UTC.'."\n",
 			$time_tab[5]+1900,
 			$time_tab[4]+1,
 			$time_tab[3],
@@ -1173,6 +1176,16 @@ sub print_viewer_page {
 		);
 	}
 	
+	my $show_ott = 0;
+	my $ott_url;
+	if ($frame_data->{'ott'} =~ /^([pm])([0-9]+)$/) {
+		$show_ott = 1;
+		$ott_url = merge_url(
+			($1 eq 'm') ? OTT_MVIEW_URL() : OTT_VIEW_URL,
+			{'query' => {'p' => $2}, 'fragment' => $&}
+		);
+	}
+	
 	if ($password_ok) {
 		$password_query = url_query_encode({'p', $settings->{'password'}});
 		$goto_url        = merge_url($goto_url       , {'query' => $password_query, 'append_query' => 1, 'preserve_fragment' => 1});
@@ -1212,6 +1225,7 @@ sub print_viewer_page {
 	my $_frame_prev_url  = html_entity_encode_dec($frame_prev_url  , 1);
 	my $_frame_next_url  = html_entity_encode_dec($frame_next_url  , 1);
 	my $_frame_full_url  = html_entity_encode_dec($frame_full_url  , 1);
+	my $_ott_url         = html_entity_encode_dec($ott_url         , 1);
 	
 	my $_story      = html_entity_encode_dec($story     , 1);
 	my $_title      = html_entity_encode_dec($title     , 1);
@@ -1361,15 +1375,19 @@ sub print_viewer_page {
 		print $fh '    <div id="underlinks">'."\n     ";
 		
 		unless (($frame == 0) && $static) {
-			print $fh '<a href="'.$_base_url.'">Once again</a> | ';
+			print $fh '<a href="'.$_base_url.'">Once again</a>';
 		}
 		if ($prev_available) {
-			print $fh '<a href="'.$_viewer_prev_url.'">Before</a> | ';
+			print $fh ' | <a href="'.$_viewer_prev_url.'">Before</a>';
 		}
 		unless ($frame == $last_frame) {
-			print $fh '<a href="'.$_viewer_last_url.'">Now</a> | ';
+			print $fh ' | <a href="'.$_viewer_last_url.'">Now</a>';
+		}
+		print $fh ' | <a href="'.$_goto_url.'">GOTO</a>';
+		if ($show_ott) {
+			print $fh ' | <a href="'.$_ott_url.'">OTT</a>';
 		}
-		print $fh '<a href="'.$_goto_url.'">GOTO</a>'."\n";
+		print $fh "\n";
 		print $fh '     <span style="float: right;">'."\n      ";
 		if (
 			($text_mode == TEXT_MODE->{'normal'})
diff --git a/settings-again.txt b/settings-again.txt
index 835a69c..2028590 100644
--- a/settings-again.txt
+++ b/settings-again.txt
@@ -37,6 +37,12 @@ path: /usr/local/bin:/usr/bin:/bin
 # (Perl security...)
 
 
+#OTT
+ott_url: /ott
+# would be http(s)://1190.bicyclesonthemoon.info/ott
+# if we run BSTA on a different server than the OTT.
+
+
 #paths to software
 
 chmod: /usr/bin/chmod
diff --git a/settings-bsta.txt b/settings-bsta.txt
index 6225f75..7b40e3b 100644
--- a/settings-bsta.txt
+++ b/settings-bsta.txt
@@ -37,6 +37,12 @@ path: /usr/local/bin:/usr/bin:/bin
 # (Perl security...)
 
 
+#OTT
+ott_url: /ott
+# would be http(s)://1190.bicyclesonthemoon.info/ott
+# if we run BSTA on a different server than the OTT.
+
+
 #paths to software
 
 chmod: /usr/bin/chmod
diff --git a/settings-debug.txt b/settings-debug.txt
index becd599..3a0f3f9 100644
--- a/settings-debug.txt
+++ b/settings-debug.txt
@@ -37,6 +37,12 @@ path: /usr/local/bin:/usr/bin:/bin
 # (Perl security...)
 
 
+#OTT
+ott_url: /ott
+# would be http(s)://1190.bicyclesonthemoon.info/ott
+# if we run BSTA on a different server than the OTT.
+
+
 #paths to software
 
 chmod: /usr/bin/chmod
diff --git a/settings.txt b/settings.txt
index 6846144..25181e1 100644
--- a/settings.txt
+++ b/settings.txt
@@ -15,7 +15,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-_version: 1.2.11
+_version: 1.2.12
 
 _SHEBANG: #!$0
 
@@ -79,6 +79,10 @@ _www_index_path     = @_PATH( $www_path, index.htm)
 _conf_path = @_PATH($conf_path, $name\.conf)
 _cron_path = @_PATH($cron_path, $name)
 
+_ott_url       = @_PATH( $ott_url,      )
+_ott_view_url  = @_PATH( $ott_url, view )
+_ott_mview_url = @_PATH( $ott_url, mview)
+
 
 CONF_BIN        = $_bin_path
 CONF_BIN_2WORDS = $_bin_2words_path
@@ -149,24 +153,24 @@ PERL_LIB = @_PERL_USE_2(lib, @_PERL_STR($lib_path))
 
 PERL_SET_PATH = \$ENV{'PATH'} = @_PERL_STR($path);
 
-PERL_EXPORT_VERSION    = @_PERL_OUR_STR( VERSION, $_version)
-
-PERL_PATH_SEPARATOR     = @_PERL_CONSTANT_STR( PATH_SEPARATOR, $_PATH_SEPARATOR)
-
-PERL_CGI_PATH           = @_PERL_CONSTANT_STR( CGI_PATH       , $_cgi_path       )
-PERL_CGI_2WORDS_PATH    = @_PERL_CONSTANT_STR( CGI_2WORDS_PATH, $_cgi_2words_path)
-PERL_CGI_ATTACH_PATH    = @_PERL_CONSTANT_STR( CGI_ATTACH_PATH, $_cgi_attach_path)
-PERL_CGI_BBCODE_PATH    = @_PERL_CONSTANT_STR( CGI_BBCODE_PATH, $_cgi_bbcode_path)
-PERL_CGI_COIN_PATH      = @_PERL_CONSTANT_STR( CGI_COIN_PATH  , $_cgi_coin_path  )
-PERL_CGI_CSS_PATH       = @_PERL_CONSTANT_STR( CGI_CSS_PATH   , $_cgi_css_path   )
-PERL_CGI_FRAME_PATH     = @_PERL_CONSTANT_STR( CGI_FRAME_PATH , $_cgi_frame_path )
-PERL_CGI_GOTO_PATH      = @_PERL_CONSTANT_STR( CGI_GOTO_PATH  , $_cgi_goto_path  )
-PERL_CGI_INFO_PATH      = @_PERL_CONSTANT_STR( CGI_INFO_PATH  , $_cgi_info_path  )
-PERL_CGI_LIST_PATH      = @_PERL_CONSTANT_STR( CGI_LIST_PATH  , $_cgi_list_path  )
-PERL_CGI_LOGO_PATH      = @_PERL_CONSTANT_STR( CGI_LOGO_PATH  , $_cgi_logo_path  )
-PERL_CGI_TIMER_PATH     = @_PERL_CONSTANT_STR( CGI_TIMER_PATH , $_cgi_timer_path )
-PERL_CGI_VIEWER_PATH    = @_PERL_CONSTANT_STR( CGI_VIEWER_PATH, $_cgi_viewer_path)
-PERL_CGI_WORDS_PATH     = @_PERL_CONSTANT_STR( CGI_WORDS_PATH , $_cgi_words_path )
+PERL_EXPORT_VERSION = @_PERL_OUR_STR( VERSION, $_version)
+
+PERL_PATH_SEPARATOR = @_PERL_CONSTANT_STR( PATH_SEPARATOR, $_PATH_SEPARATOR)
+
+PERL_CGI_PATH        = @_PERL_CONSTANT_STR( CGI_PATH       , $_cgi_path       )
+PERL_CGI_2WORDS_PATH = @_PERL_CONSTANT_STR( CGI_2WORDS_PATH, $_cgi_2words_path)
+PERL_CGI_ATTACH_PATH = @_PERL_CONSTANT_STR( CGI_ATTACH_PATH, $_cgi_attach_path)
+PERL_CGI_BBCODE_PATH = @_PERL_CONSTANT_STR( CGI_BBCODE_PATH, $_cgi_bbcode_path)
+PERL_CGI_COIN_PATH   = @_PERL_CONSTANT_STR( CGI_COIN_PATH  , $_cgi_coin_path  )
+PERL_CGI_CSS_PATH    = @_PERL_CONSTANT_STR( CGI_CSS_PATH   , $_cgi_css_path   )
+PERL_CGI_FRAME_PATH  = @_PERL_CONSTANT_STR( CGI_FRAME_PATH , $_cgi_frame_path )
+PERL_CGI_GOTO_PATH   = @_PERL_CONSTANT_STR( CGI_GOTO_PATH  , $_cgi_goto_path  )
+PERL_CGI_INFO_PATH   = @_PERL_CONSTANT_STR( CGI_INFO_PATH  , $_cgi_info_path  )
+PERL_CGI_LIST_PATH   = @_PERL_CONSTANT_STR( CGI_LIST_PATH  , $_cgi_list_path  )
+PERL_CGI_LOGO_PATH   = @_PERL_CONSTANT_STR( CGI_LOGO_PATH  , $_cgi_logo_path  )
+PERL_CGI_TIMER_PATH  = @_PERL_CONSTANT_STR( CGI_TIMER_PATH , $_cgi_timer_path )
+PERL_CGI_VIEWER_PATH = @_PERL_CONSTANT_STR( CGI_VIEWER_PATH, $_cgi_viewer_path)
+PERL_CGI_WORDS_PATH  = @_PERL_CONSTANT_STR( CGI_WORDS_PATH , $_cgi_words_path )
 
 PERL_DATA_PATH          = @_PERL_CONSTANT_STR( DATA_PATH         , $_data_path         )
 PERL_DATA_ATTACH_PATH   = @_PERL_CONSTANT_STR( DATA_ATTACH_PATH  , $_data_attach_path  )
@@ -180,34 +184,37 @@ PERL_DATA_STATE_PATH    = @_PERL_CONSTANT_STR( DATA_STATE_PATH   , $_data_state_
 PERL_DATA_STORY_PATH    = @_PERL_CONSTANT_STR( DATA_STORY_PATH   , $_data_story_path   )
 PERL_DATA_WORDS_PATH    = @_PERL_CONSTANT_STR( DATA_WORDS_PATH   , $_data_words_path   )
 
-PERL_LOG_PATH           = @_PERL_CONSTANT_STR( LOG_PATH      , $_log_path      )
-PERL_LOG_SPAM_PATH      = @_PERL_CONSTANT_STR( LOG_SPAM_PATH , $_log_spam_path )
-PERL_LOG_WORDS_PATH     = @_PERL_CONSTANT_STR( LOG_WORDS_PATH, $_log_words_path)
+PERL_LOG_PATH       = @_PERL_CONSTANT_STR( LOG_PATH      , $_log_path      )
+PERL_LOG_SPAM_PATH  = @_PERL_CONSTANT_STR( LOG_SPAM_PATH , $_log_spam_path )
+PERL_LOG_WORDS_PATH = @_PERL_CONSTANT_STR( LOG_WORDS_PATH, $_log_words_path)
+
+PERL_WWW_PATH       = @_PERL_CONSTANT_STR( WWW_PATH      , $_www_path      )
+PERL_WWW_GOTO_PATH  = @_PERL_CONSTANT_STR( WWW_GOTO_PATH , $_www_goto_path )
+PERL_WWW_INDEX_PATH = @_PERL_CONSTANT_STR( WWW_INDEX_PATH, $_www_index_path)
 
-PERL_WWW_PATH           = @_PERL_CONSTANT_STR( WWW_PATH      , $_www_path      )
-PERL_WWW_GOTO_PATH      = @_PERL_CONSTANT_STR( WWW_GOTO_PATH , $_www_goto_path )
-PERL_WWW_INDEX_PATH     = @_PERL_CONSTANT_STR( WWW_INDEX_PATH, $_www_index_path)
+PERL_OTT_VIEW_URL  = @_PERL_CONSTANT_STR( OTT_VIEW_URL   , $_ott_view_url )
+PERL_OTT_MVIEW_URL = @_PERL_CONSTANT_STR( OTT_MVIEW_URL  , $_ott_mview_url)
 
-PERL_SCHEME             = @_PERL_CONSTANT_STR( SCHEME      , $scheme      )
-PERL_WEBSITE            = @_PERL_CONSTANT_STR( WEBSITE     , $website     )
-PERL_WEBSITE_NAME       = @_PERL_CONSTANT_STR( WEBSITE_NAME, $website_name)
-PERL_FAVICON_PATH       = @_PERL_CONSTANT_STR( FAVICON_PATH, $favicon_path)
+PERL_SCHEME       = @_PERL_CONSTANT_STR( SCHEME      , $scheme      )
+PERL_WEBSITE      = @_PERL_CONSTANT_STR( WEBSITE     , $website     )
+PERL_WEBSITE_NAME = @_PERL_CONSTANT_STR( WEBSITE_NAME, $website_name)
+PERL_FAVICON_PATH = @_PERL_CONSTANT_STR( FAVICON_PATH, $favicon_path)
 
-PERL_COIN_DATE          = @_PERL_CONSTANT_STR( COIN_DATE, $coin_date)
-PERL_INTF_DATE          = @_PERL_CONSTANT_STR( INTF_DATE, $intf_date)
+PERL_COIN_DATE = @_PERL_CONSTANT_STR( COIN_DATE, $coin_date)
+PERL_INTF_DATE = @_PERL_CONSTANT_STR( INTF_DATE, $intf_date)
 
-PERL_STORY_CREDITS      = @_PERL_CONSTANT_STR( STORY_CREDITS, $story_credits)
-PERL_INTF_CREDITS       = @_PERL_CONSTANT_STR( INTF_CREDITS , @intf_credits)
-PERL_SOURCE_URL         = @_PERL_CONSTANT_STR( SOURCE_URL   , $source_url)
+PERL_STORY_CREDITS = @_PERL_CONSTANT_STR( STORY_CREDITS, $story_credits)
+PERL_INTF_CREDITS  = @_PERL_CONSTANT_STR( INTF_CREDITS , @intf_credits )
+PERL_SOURCE_URL    = @_PERL_CONSTANT_STR( SOURCE_URL   , $source_url   )
 
-PERL_GZIP               = @_PERL_CONSTANT_STR( GZIP, $gzip)
+PERL_GZIP = @_PERL_CONSTANT_STR( GZIP, $gzip)
 
-PERL_RESET_PASSWORD     = @_PERL_CONSTANT_STR( RESET_PASSWORD, $reset_password)
+PERL_RESET_PASSWORD = @_PERL_CONSTANT_STR( RESET_PASSWORD, $reset_password)
 
-PERL_STORY_LENGTH       = @_PERL_CONSTANT(     STORY_LENGTH    , $story_length)
-PERL_PAGE_LENGTH        = @_PERL_CONSTANT(     PAGE_LENGTH     , $page_length)
-PERL_FIRSTPAGE_LENGTH   = @_PERL_CONSTANT(     FIRSTPAGE_LENGTH, $firstpage_length)
+PERL_STORY_LENGTH     = @_PERL_CONSTANT( STORY_LENGTH    , $story_length    )
+PERL_PAGE_LENGTH      = @_PERL_CONSTANT( PAGE_LENGTH     , $page_length     )
+PERL_FIRSTPAGE_LENGTH = @_PERL_CONSTANT( FIRSTPAGE_LENGTH, $firstpage_length)
 
-PERL_COMMENT_PAGE_LENGTH= @_PERL_CONSTANT(     COMMENT_PAGE_LENGTH, $comment_page_length)
+PERL_COMMENT_PAGE_LENGTH = @_PERL_CONSTANT( COMMENT_PAGE_LENGTH, $comment_page_length)
 
 RUN_PERL = @_SHEBANG($perl)