html
{
+ /* background-color: #d9ecff; */ /* old background */
background-color: #46a3ff;
- /* background-color: #d9ecff; */
- border-color: #000000;
- color: #000000;
+ border-color: #000000;
+ color: #000000;
text-align: center;
}
a
{
border-color: #0057af;
- color: #0057af;
+ color: #0057af;
text-decoration:underline;
}
a:visited
{
border-color: #bb6622;
- color: #bb6622;
+ color: #bb6622;
}
a:hover
{
border-color: #bb6622;
- color: #bb6622;
+ color: #bb6622;
}
a:hover:visited
{
border-color: #0057af;
- color: #0057af;
+ color: #0057af;
}
::selection
{
- color: #ffffff;
+ color: #ffffff;
background-color: #bb6622;
}
div#all
{
background-color: #d9ecff;
- /* background-color: #ffffff; */
- margin-left: auto;
+ margin-left: auto;
margin-right: auto;
- margin-top: 0px;
+ margin-top: 0px;
margin-bottom: 0px;
- width: 656px;
- padding-top: 27px;
- padding-bottom: 27px;
+ width: 656px;
+ padding: 0px;
text-align: center;
}
div.all
{
background-color: #d9ecff;
- /* background-color: #ffffff; */
- margin-left: auto;
+ margin-left: auto;
margin-right: auto;
- margin-top: 0px;
+ margin-top: 0px;
margin-bottom: 0px;
- width: 656px;
- padding-top: 27px;
- padding-bottom: 27px;
+ width: 656px;
+ padding: 0px;
text-align: center;
}
div.ins
{
background-color: #ffffff;
- margin-left: auto;
- margin-right: auto;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
- border: 0px;
- width: 580px;
+ border-color: #d9ecff;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+ border-style: solid;
+ border-left-width: 38px;
+ border-right-width: 38px;
+ width: 580px;
}
div#inst
{
- /* margin-top: 27px; */
- /* margin-bottom: 0px; */
+ border-top-width: 27px;
+ border-bottom-width: 0px;
}
div#insb
{
- /* margin-top: 0px; */
- /* margin-bottom: 27px; */
+ border-top-width: 0px;
+ border-bottom-width: 27px;
+}
+div#insw
+{
+ border-top-width: 27px;
+ border-bottom-width: 27px;
}
div#title
{
- text-align: center;
- padding-top: 21px;
+ text-align: center;
+ padding-top: 21px;
padding-bottom: 21px;
- padding-left: 0px;
- padding-right: 0px;
- border: 0px;
- margin: 0px;
+ padding-left: 0px;
+ padding-right: 0px;
+ border-width: 0px;
+ margin: 0px;
}
div.title
{
- text-align: center;
- padding-top: 21px;
+ text-align: center;
+ padding-top: 21px;
padding-bottom: 21px;
- padding-left: 0px;
- padding-right: 0px;
- border: 0px;
- margin: 0px;
+ padding-left: 0px;
+ padding-right: 0px;
+ border-width: 0px;
+ margin: 0px;
}
h1#titletext
{
- margin: 0px;
- border: 0px;
- padding: 0px;
+ margin: 0px;
+ border-width: 0px;
+ padding: 0px;
}
h1.titletext
{
- margin: 0px;
- border: 0px;
- padding: 0px;
+ margin: 0px;
+ border-width: 0px;
+ padding: 0px;
}
div#storypuzzle
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border-width: 0px;
font-weight: bold;
}
div#framespace
{
background-color: #ffffff;
- margin-left: auto;
+ margin-left: auto;
margin-right: auto;
- margin-top: 0px;
+ margin-top: 0px;
margin-bottom: 0px;
- padding: 0px;
- border: 0px;
- width: 656px;
+ padding: 0px;
+ border-width: 0px;
+ width: 656px;
}
img#frame
{
- border: solid #0057af;
- border-width: 27px 38px;
- padding: 0px;
- margin: 0px;
+ border-color: #0057af;
+ border-style: solid;
+ width: 580px;
+ height: 410px;
+ border-top-width: 27px;
+ border-bottom-width: 27px;
+ border-left-width: 38px;
+ border-right-width: 38px;
+ padding: 0px;
+ margin: 0px;
}
img#frame:hover
{
}
img#frame.double
{
- border-width: 54px 38px;
+ width: 580px;
+ height: 820px;
+ border-top-width: 54px;
+ border-bottom-width: 54px;
+ border-left-width: 38px;
+ border-right-width: 38px;
}
img#frame.full
{
- border-width: 0px;
background-color: #0057af;
+ width: 656px;
+ height: 464px;
+ border-width: 0px;
}
img#frame.full#hover
{
}
img#frame.bftf
{
- padding-top: 60px;
- padding-bottom: 60px;
- padding-left: 85px;
- padding-right: 85px;
background-color: #d9ecff;
+ width: 410px;
+ height: 290px;
+ padding-top: 60px;
+ padding-bottom: 60px;
+ padding-left: 85px;
+ padding-right: 85px;
}
+img#frame.bftf#hover
+{
+ background-color: #ff8800;
+}
+
img.intf
{
border-width: 0px;
- padding: 0px;
- margin: 0px;
+ padding: 0px;
+ margin: 0px;
}
tr.intf
{
border-width: 0px;
- padding: 0px;
- margin: 0px;
+ padding: 0px;
+ margin: 0px;
}
td.intf
{
border-width: 0px;
- padding: 0px;
- margin: 0px;
+ padding: 0px;
+ margin: 0px;
}
table#intftable
{
- border: solid #0057af;
- border-width:27px 38px;
- padding: 0px;
- margin: 0px;
background-color: #ffffff;
+ border-color: #0057af;
border-collapse: collapse;
- border-spacing: 0px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-top-width: 27px;
+ border-bottom-width: 27px;
+ border-left-width: 38px;
+ border-right-width: 38px;
+ padding: 0px;
+ margin: 0px;
}
div#undertext
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border-width: 0px;
}
div.undertext
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border-width: 0px;
}
div#chat
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
font-family: monospace;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border: 0px;
}
div.fq
{
- text-align: left;
- border: solid #0057af 4px;
font-family: monospace;
- padding: 2px;
+ text-align: left;
+ border-color: #0057af;
+ border-style: solid;
+ border-width: 4px;
+ padding: 2px;
}
div.fq:hover
{
}
div.tq
{
- text-align: left;
- border: solid #0057af 4px;
- padding: 2px;
+ text-align: left;
+ border-color: #0057af;
+ border-style: solid;
+ border-width: 4px;
+ padding: 2px;
+
}
div.tq:hover
{
div.opomba
{
- text-align: left;
- border: solid #0057af 4px;
background-color: #0057af;
+ border-color: #0057af;
+ border-style: solid;
+ border-width: 4px;
+ text-align: left;
}
div.opomba:hover
{
- border-color: #bb6622;
+ border-color: #bb6622;
background-color: #bb6622;
}
div.opomba:target
{
- border-color: #bb6622;
+ border-color: #bb6622;
background-color: #bb6622;
}
div.opomba:target:hover
{
- border-color: #bb6622;
+ border-color: #bb6622;
background-color: #bb6622;
}
div.opomba_info
{
color: #ffffff!important;
- /* font-weight: bold; */
}
div.opomba_text
{
background-color: #ffffff;
- color: #000000;
- clear: both;
+ color: #000000;
+ clear: both;
padding: 4px;
}
div.space
{
background-color: #46a3ff;
- height: 27px;
- margin-top: 27px;
- margin-bottom: 27px;
+ height: 27px;
+ margin-top: 0px; /* 27 */
+ margin-bottom: 0px; /* 27 */
}
div#command
{
- text-align: left;
- margin: 0px;
- border: 0px;
- padding: 8px;
+ text-align: left;
+ margin: 0px;
+ border-width: 0px;
+ padding: 8px;
+ font-size: 150%;
font-family: monospace;
- font-size: 150%;
- /* font-weight: bold; */
}
div#underlinks
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border-width: 0px;
font-family: monospace;
}
div.underlinks
{
- text-align: left;
- padding: 8px;
- margin: 0px;
- border: 0px;
+ text-align: left;
+ padding: 8px;
+ margin: 0px;
+ border-width: 0px;
font-family: monospace;
}
input.intx
{
- border-color: #0057af;
- color: #000000;
background-color: #ffffff;
- border-width: 2px;
+ color: #000000;
+ border-color: #0057af;
border-style: solid;
- margin: 2px;
+ border-width: 2px;
+ margin: 2px;
font-family: monospace;
- /* font-size: 150%; */
}
input.intx:focus
{
input.intxc
{
- border-color: #0057af;
- color: #000000;
background-color: #ffffff;
- border-width: 2px;
+ color: #000000;
+ border-color: #0057af;
border-style: solid;
- margin: 2px;
+ border-width: 2px;
+ margin: 2px;
+ width: 100%;
font-family: monospace;
- width: 100%;
- /* font-size: 150%; */
}
input.intxc:focus
{
border-color: #bb6622;
}
-/* table.intxc
+/*
+table.intxc
{
width=100%;
-} */
+}
+*/
textarea.inta
{
- border-color: #0057af;
- color: #000000;
background-color: #ffffff;
- border-width: 2px;
+ color: #000000;
+ border-color: #0057af;
border-style: solid;
- width: 100%;
- margin: 2px;
- resize: none;
+ border-width: 2px;
+ margin: 2px;
+ width: 100%;
+ resize: none;
}
textarea.inta:focus
{
input.inbt
{
- border-color: #0057af;
- color: #000000;
background-color: #ffffff;
- border-width: 2px;
+ color: #000000;
+ border-color: #0057af;
border-style: solid;
- margin: 2px;
+ border-width: 2px;
+ margin: 2px;
font-family: monospace;
- /* font-size: 150%; */
}
input.inbt:focus
{
}
input.hl {
- background:none!important;
- border:none!important;
- padding:0!important;
-/* font-family:inherit;
- font-size:inherit; */
- font: inherit;
- text-decoration:underline;
border-color: #0057af;
- color: #0057af;
+ color: #0057af;
+ background: none!important;
+ border-style:none!important;
+ padding: 0!important;
+ font: inherit;
+ text-decoration: underline;
}
input.hl:hover {
border-color: #bb6622;
- color: #bb6622;
+ color: #bb6622;
}
form.hl {
- display: inline
+ display: inline;
}
form.goto {
- clear: both;
- display: inline
+ clear: both;
+ display: inline;
}
.br
{
+ color: #bb6622!important;
border-color: #bb6622!important;
- color: #bb6622!important;
}
.po
{
+ color: #ff8800!important;
border-color: #ff8800!important;
- color: #ff8800!important;
}
.ni
{
+ color: #0057af!important;
border-color: #0057af!important;
- color: #0057af!important;
}
.bi
{
+ color: #ffffff!important;
border-color: #ffffff!important;
- color: #ffffff!important;
}
.cz
{
+ color: #000000!important;
border-color: #000000!important;
- color: #000000!important;
}
.zi
{
+ color: #08B000!important;
border-color: #08B000!important;
- color: #08B000!important;
}
.fi
{
+ color: #AA22BB!important;
border-color: #AA22BB!important;
- color: #AA22BB!important;
}
.hv.ni:hover
{
+ color: #bb6622!important;
border-color: #bb6622!important;
- color: #bb6622!important;
}
.hv.br:hover
{
+ color: #0057af!important;
border-color: #0057af!important;
- color: #0057af!important;
}
.hu
{
- text-decoration:none!important;
+ text-decoration: none!important;
}
.hu:hover
{
- text-decoration:underline!important;
+ text-decoration: underline!important;
}
div.le
#
# The coincidence interface
#
-# Copyright (C) 2016, 2017, 2023, 2024 Balthasar Szczepański
+# Copyright (C) 2016, 2017, 2023, 2024, 2025 Balthasar Szczepański
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
print_html_head_end(\*STDOUT);
print_html_body_start(\*STDOUT);
-print ' <div id="inst" class="ins">'."\n";
+print ' <div id="insw" class="ins">'."\n";
print ' <div id="title">'."\n";
print ' <H1 id="titletext">Coincidence</H1>'."\n";
}
print ' </div>'."\n";
-print ' </div>'."\n";
-print ' <div id="insb" class="ins">'."\n";
-
print ' <div id="chat">'."\n";
if ($page < 0) {
for (my $i = @chat_lines-1; $i>=0; --$i) {
#
# The comment posting interface
#
-# Copyright (C) 2024 Balthasar Szczepański
+# Copyright (C) 2024, 2025 Balthasar Szczepański
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
print_html_head_end(\*STDOUT);
print_html_body_start(\*STDOUT);
- print ' <div id="inst" class="ins">'."\n";
+ print ' <div id="insw" class="ins">'."\n";
print ' <div id="title">'."\n";
print ' <h1 id="titletext">'.$_title.'</h1>'."\n";
print ' </div>'."\n";
- print ' </div>'."\n";
-
if ($message ne '') {
- print ' <div id="insb" class="ins">'."\n";
-
print ' <div id="command">'."\n";
print ' <span class="br">'.$_message.'</span>'."\n";
print ' </div>'."\n";
-
- print ' </div>'."\n";
}
- print ' <div id="insw" class="ins">'."\n";
-
if ($show_content) {
print ' <div class="undertext" id="words">'."\n";
print ' <form method="post" action="'.$_post_url.'">'."\n";
#
# Reset BSTA state
#
-# Copyright (C) 2016, 2017, 2018, 2023, 2024 Balthasar Szczepański
+# Copyright (C) 2016, 2017, 2018, 2023, 2024, 2025 Balthasar Szczepański
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
###PERL_RESET_PASSWORD: RESET_PASSWORD = ''
+my $time = time();
+srand ($time-$$);
+
my %story;
my %state;
my %chat;
delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
###PERL_SET_PATH: $ENV{'PATH'} = /usr/local/bin:/usr/bin:/bin;
+print $time." RESET\n";
+
%settings = read_settings();
%state = read_state();
unless (
%goto_list = (
);
+print "RESET state\n";
write_data_file(DATA_STATE_PATH(), \%state);
+print "RESET 2words\n";
write_data_file(DATA_STORY_PATH(), \%story);
+print "RESET Coincidence\n";
write_data_file(DATA_CHAT_PATH() , \%chat);
+print "RESET GOTO\n";
write_data_file(DATA_LIST_PATH() , \%goto_list);
+print "RESET index\n";
write_index(
\%state,
\%settings,
);
if (opendir_encoded(my $dir, DATA_WORDS_PATH())) {
- while (defined (my $file_name = readdir_decoded($dir))) {
+ my @words_list = readdir_decoded($dir);
+ foreach my $file_name (@words_list) {
if ($file_name !~ /^[0-9]+$/) {
next;
}
my $full_path = join_path(PATH_SEPARATOR(), DATA_WORDS_PATH(), $file_name);
- # print "RM $full_path\n";
+ print "RM words $file_name\n";
unlink_encoded ($full_path);
}
}
foreach my $file_name (@remove_list) {
my $full_path = join_path(PATH_SEPARATOR(), WWW_PATH(), $file_name);
- # print "RM $full_path\n";
+ print "RM www $file_name\n";
unlink_encoded ($full_path);
}