###RUN_PERL: #!/usr/bin/perl

# reset is generated from reset.1.pl.
#
# Reset BSTA state
#
# Copyright (C) 2016 - 2018, 2023  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
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# 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/>.

use strict;
#use warnings;
###PERL_LIB: use lib /botm/lib/bsta
use bsta_lib qw(writedatafile);

###PERL_CGI_PATH:           CGI_PATH           = /bsta/

###PERL_DATA_CHAT_PATH:     DATA_CHAT_PATH     = /botm/data/bsta/chat
###PERL_DATA_STATE_PATH:    DATA_STATE_PATH    = /botm/data/bsta/state
###PERL_DATA_STORY_PATH:    DATA_STORY_PATH    = /botm/data/bsta/story

###PERL_WWW_INDEX_PATH:     WWW_INDEX_PATH     = /botm/www/1190/bsta/index.htm

###PERL_WEBSITE:            WEBSITE            = 1190.bicyclesonthemoon.info

###PERL_COIN_DATE:          COIN_DATE          = 13-Nov-2016 22:15
###PERL_INTF_DATE:          INTF_DATE          = 28-Sep-2016 20:34

my %story = (
	'id'      => '0',
	'letter'  => '',
	'lastip'  => '0.0.0.0',
	'content' => '',
	'pass'    => '0',
	'state'   => '0'
);
my %state = (
	'state' => '0',
	'last'  => '0',
	'ongtime' => '',
	'nextong' => '',
	'ip1' => '',
	'ip2' => '',
	'ip3' => ''
);
my %chat = (
	'id'      => '0',
	'state'   => '0',
	'content' => ''
);

delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
###PERL_SET_PATH: $ENV{'PATH'} = /usr/local/bin:/usr/bin:/bin;

writedatafile(DATA_STATE_PATH,%state);
writedatafile(DATA_STORY_PATH,%story);
writedatafile(DATA_CHAT_PATH,%chat);

writeindex(WWW_INDEX_PATH);

#function borrowed from 2words.pl - keep consistent!
sub writeindex {
	(my $indexpath) = @_;
	my $indexfile;
	my $indexof;
		
	if(ref($indexpath)) {
		$indexfile=$indexpath;
		unless (seek($indexfile, 0, 0)) {
			return 0;
		}
	}
	else {
		unless (open ($indexfile, ">", $indexpath)) {
			return 0;
		}
	}
	
	$indexof = CGI_PATH;
	$indexof =~ s/\/$//g;
	
	print $indexfile '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'."\n";
	print $indexfile '<html>'."\n";
	print $indexfile ' <head>'."\n";
	print $indexfile '  <title>Index of '.$indexof.'</title>'."\n";
	print $indexfile ' </head>'."\n";
	print $indexfile ' <body>'."\n";
	print $indexfile '<h1>Index of '.$indexof.'</h1>'."\n";
	print $indexfile '<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>'."\n";
	print $indexfile '<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>'."\n";
	print $indexfile '<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="2words/">2words/</a></td><td align="right">'.INTF_DATE.'  </td><td align="right">  - </td><td>&nbsp;</td></tr>'."\n";
	print $indexfile '<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="coin/">coin/</a></td><td align="right">'.COIN_DATE.'  </td><td align="right">  - </td><td> Coincidence </td></tr>'."\n";
	print $indexfile '<tr><th colspan="5"><hr></th></tr>'."\n";
	print $indexfile '</table>'."\n";
	print $indexfile '<address>Apache/2.2.22 (Debian) Server at '.WEBSITE.' Port 80</address>'."\n";
	print $indexfile '</body></html>'."\n";
	
	
	unless (ref($indexpath)) {
		close ($indexfile);
	}
	else {
		truncate ($indexfile , tell($indexfile));
	}
	
	return 1;
}
