315 lines
10 KiB
PHP
Executable File
315 lines
10 KiB
PHP
Executable File
<?php session_start(); ?>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
html{
|
|
overflow: scroll;
|
|
overflow-x: hidden;
|
|
min-height: 100%;
|
|
position: relative;
|
|
background-color: rgb(30,30,30);
|
|
color: white;
|
|
}
|
|
::-webkit-scrollbar {
|
|
width: 0px; /* Remove scrollbar space */
|
|
background: transparent; /* Optional: just make scrollbar invisible */
|
|
}
|
|
code{
|
|
padding-left: 2px;
|
|
padding-right: 2px;
|
|
text-align: left;
|
|
}
|
|
.chat-box{
|
|
position: relative;
|
|
border: solid 4px black;
|
|
top: 0vh;
|
|
max-width: 60%;
|
|
height: 72vh;
|
|
overflow: scroll;
|
|
padding: 5px;
|
|
}
|
|
.autost{
|
|
color: white;
|
|
background-color: green;
|
|
padding: 4px;
|
|
}
|
|
.statusbox{
|
|
position: absolute;
|
|
border: solid 3px black;
|
|
padding: 5px;
|
|
top: 10%;
|
|
left: 2%;
|
|
font-size: 15px;
|
|
}
|
|
.hider{
|
|
position: absolute;
|
|
background-color: rgba(0,0,0,0.8);
|
|
width: 100%;
|
|
bottom: 0px;
|
|
top: 0px;
|
|
left: 0px;
|
|
display: none;
|
|
}
|
|
.pbox{
|
|
color: white;
|
|
width: 90%;
|
|
height: 60vh;
|
|
top: 30px;
|
|
left: 30px;
|
|
padding: 3%;
|
|
position: relative;
|
|
background-color: rgb(50,50,50);
|
|
overflow: scroll;
|
|
font-size: 20px;
|
|
}
|
|
|
|
.inner-chat-box{
|
|
font-size: 15px;
|
|
}
|
|
.inner-chat-box-pfp{
|
|
height: 50px;
|
|
width: 50px;
|
|
object-fit: cover;
|
|
border-radius: 50px;
|
|
}
|
|
.inner-chat-box-wrap{
|
|
position: relative;
|
|
bottom: 20;
|
|
}
|
|
.inner-chat-box-a{
|
|
text-decoration: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
|
|
<?php
|
|
date_default_timezone_set('America/Los_Angeles');
|
|
$set_logout_status=true;
|
|
require_once("../login/login.php");
|
|
if($login_correct=="true"&&$_SESSION['username']!="guest"){
|
|
//set status
|
|
$statusf=simplexml_load_file("status.xml");
|
|
$file = fopen("status.xml","w");
|
|
$userexist=false;
|
|
for($i=0;$i<=count($statusf->user);$i++){
|
|
if($statusf->user[$i]==$_SESSION['username']){
|
|
$userexist=true;
|
|
break;
|
|
}
|
|
if($userexist==true){break;}
|
|
}
|
|
$i=0;
|
|
fwrite($file, '<?xml version="1.0" encoding="UTF-8"?>'."\n".'<status>'."\n");
|
|
$wrote=false;
|
|
foreach($statusf as $status){
|
|
if(($statusf->user[$i]==$_SESSION['username'])||($userexist==false)){
|
|
if($userexist==false){
|
|
fwrite($file, ' <user time="'.$statusf->user[$i]['time'].'">'.$statusf->user[$i]."</user>\n");
|
|
}
|
|
if($wrote==false){fwrite($file, ' <user time="'.date("n/j/Y/H:i").'">'.$_SESSION['username']."</user>\n"); $wrote=true;}
|
|
} else {
|
|
fwrite($file, ' <user time="'.$statusf->user[$i]['time'].'">'.$statusf->user[$i]."</user>\n");
|
|
}
|
|
$i++;
|
|
}
|
|
fwrite($file, '</status>');
|
|
fclose($file);
|
|
}
|
|
$xml=simplexml_load_file("../account_data/".$_SESSION['username'].".xml");
|
|
$ban="false";
|
|
for($i=count($xml->history->action);$i>=0;$i--){
|
|
if(($xml->history->action[$i]['page']=="simplychat")&&($xml->history->action[$i]['type']=="ban")){
|
|
$ban="true";
|
|
$reason=strval($xml->history->action[$i]);
|
|
break;
|
|
}
|
|
if($ban=="true"){break;}
|
|
}
|
|
?>
|
|
<title>welcome <?php echo $_SESSION['username']; ?></title>
|
|
<div align="center"><div id="error-message" style="display: none; text-align: center; background-color: red; width: 50%;"></div></div>
|
|
<script language="javascript" type="text/javascript">
|
|
if("<?php echo $_SESSION['errormsglogin']; ?>"!=""){
|
|
$("#error-message").css("display","block");
|
|
$("#error-message").html("<?php echo $_SESSION['errormsglogin']; ?>");
|
|
}
|
|
</script>
|
|
<div align="center"><div align="center" id="chat" class="chat-box"></div></div>
|
|
<a href="../index.html" style="text-decoration: none; color: white; size: 20px; border: 2px outset white; padding: 4px; position: absolute; top: 10px; left: 10px;">go home</a>
|
|
<br>
|
|
|
|
|
|
<form id="chatform" align="center" method="post" action="chatposter.php" target="_blank" >
|
|
<textarea autocomplete="off" type="text" name="text" id="text" style="height: 50px; width: 50%; background-color: rgb(30,30,30); color: white; font-size: 15;" ></textarea>
|
|
</form>
|
|
|
|
<div id="status" class="statusbox"></div>
|
|
|
|
<div align="center">
|
|
<input autocomplete="off" id="autost" class="autost" type="button" onclick="autos()" value="toggle autoscroll" />
|
|
<input autocomplete="off" class="autost" style="background-color: rgba(0,0,0,0);" type="button" onclick="show('rules')" value="show rules, commands, info" />
|
|
<input autocomplete="off" class="autost" style="background-color: rgba(0,0,0,0);" type="button" onclick="cleartext()" value="clear text" />
|
|
</div>
|
|
|
|
<div id="time" align="right" style="position: relative; float: right; width: 10vw; right:1vw; bottom: 3vh;"></div>
|
|
<audio controls id="hardr" style="width: 0%; height: 0%;"><source src="hardr.wav" type="audio/mpeg"></audio>
|
|
|
|
<div style="position: absolute; right:20px; top: 40px; padding: 10px;">
|
|
<a href="profile.php?username=<?php echo $_SESSION['username']; ?>" target="_blank">
|
|
<img style="width:70px; height: 70px; border-radius: 70px; object-fit: cover;" src="<?php echo $_SESSION['profilepicture']; ?>" alt="../account_data/guest.png"></img>
|
|
<div style="position: absolute; top: 30%; left: 7%; font-size: 15px; color: white; text-decoration: none; background-color: rgba(30,30,30,0.5);" align="center">logged in as<br><?php echo $_SESSION['username']; ?></div>
|
|
</a>
|
|
</div>
|
|
|
|
<script language="javascript" type="text/javascript">username="<?php echo $_SESSION['username']; ?>"</script>
|
|
<script src="../login/login.js" ></script>
|
|
|
|
<div id="rules" class="hider" onclick="hide('rules')"><div class="pbox" id="hidertext"></div></div>
|
|
<div id="errorbox" class="hider" onclick="hide('errorbox')"><div class="pbox" id="errorboxtext"></div></div>
|
|
|
|
<script language="javascript" type="text/javascript">
|
|
if('<?php echo $ban; ?>' == 'true') {
|
|
if(alert('you were banned by admin. reason: '+'<?php echo $reason; ?>')) {
|
|
window.location.replace("../index.html");
|
|
} else {
|
|
window.location.replace("../index.html");
|
|
}
|
|
throw new Error('This is not an error. This is just to abort javascript');
|
|
}
|
|
//toggle auto scroll
|
|
function autos(){
|
|
switch(autoscroll){
|
|
case true:
|
|
autoscroll=false;
|
|
$("#autost").css("background-color", "red");
|
|
break;
|
|
case false:
|
|
autoscroll=true
|
|
$("#autost").css("background-color", "green");
|
|
break;
|
|
}
|
|
}
|
|
//post rule commands based on perms
|
|
var pboxtext="because of my webhost TOS, NO 18+ CONTENT IS ALLOWED ON THIS CHAT<br>";
|
|
if('<?php for($i=0;$i<=count($xml->permissions->perm);$i++){ if($xml->permissions->perm[$i]=="permission.simplychat.clear"){ echo $xml->permissions->perm[$i]; }} ?>'=="permission.simplychat.clear"){
|
|
var pboxtext=pboxtext+
|
|
"/clear --clears chat<br>";
|
|
}
|
|
if('<?php for($i=0;$i<=count($xml->permissions->perm);$i++){ if($xml->permissions->perm[$i]=="permission.simplychat.mute"){ echo $xml->permissions->perm[$i]; }} ?>'=="permission.simplychat.mute"){
|
|
var pboxtext=pboxtext+
|
|
"/mute,user,time(m minutes,h hours,d days),reason --mutes the user with the set amount of time, example"
|
|
+" /mute,guest,1m,test<br>";
|
|
}
|
|
if('<?php for($i=0;$i<=count($xml->permissions->perm);$i++){ if($xml->permissions->perm[$i]=="permission.simplychat.ban"){ echo $xml->permissions->perm[$i]; }} ?>'=="permission.simplychat.ban"){
|
|
var pboxtext=pboxtext+
|
|
"/ban,user,reason --permanatly bans the user example /ban,guest,fwaggot<br>";
|
|
}
|
|
var pboxtext=pboxtext+'<br><br><a style="color: rgb(0,120,230);" target="blank" href="http://iceyfox.x10host.com/discord_rules.html">rules</a>'
|
|
$("#hidertext").html(pboxtext);
|
|
//hide and show
|
|
function show(data){
|
|
$("#"+data).css("display","block");
|
|
}
|
|
function hide(data){
|
|
$("#"+data).css("display","none");
|
|
}
|
|
//clear text
|
|
function cleartext(){
|
|
$("#text").val("");
|
|
}
|
|
//read the fucking file
|
|
var autoscroll=true;
|
|
chatget('chat');
|
|
chatget('status');
|
|
chatloader();
|
|
setInterval(chatloader,2000);
|
|
function chatget(mode){
|
|
if(mode=="chat"){
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "chat.txt",
|
|
cache: false,
|
|
async: true,
|
|
success: function chatreturn(data){
|
|
$("#chat").html(data);
|
|
loadedchat=data;
|
|
}
|
|
});}
|
|
}
|
|
function chatloader(){
|
|
usaTime = new Date().toLocaleString("en-US", {timeZone: "America/Los_Angeles"});
|
|
usaTime = new Date(usaTime);
|
|
//read file
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "chat.txt",
|
|
cache: false,
|
|
async: true,
|
|
success: function(data){
|
|
if(data!=loadedchat){
|
|
chatget('chat');
|
|
}
|
|
}
|
|
});
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "status.xml",
|
|
cache: false,
|
|
async: true,
|
|
dataType: "xml",
|
|
success: function(xml){
|
|
str="";
|
|
datetime = (usaTime.getMonth()+1) + "/"
|
|
+ usaTime.getDate() + "/"
|
|
+ usaTime.getFullYear() + "/"
|
|
+ usaTime.getHours() + ":"
|
|
+ usaTime.getMinutes();
|
|
$(xml).find('user').each(function(index){
|
|
getTime=$(this).attr('time');
|
|
if((getTime.split(":")[0].split("/")[3] != usaTime.getHours())||((getTime.split("/")[0]+getTime.split("/")[1]+getTime.split("/")[2]) != (datetime.split("/")[0]+datetime.split("/")[1]+datetime.split("/")[2]))){
|
|
var status = "offline";
|
|
var statuscolor = "gray";
|
|
} else if((parseInt(getTime.split(":")[1])+3 < parseInt(usaTime.getMinutes()))||(parseInt(getTime.split(":")[0].split("/")[3]) != parseInt(datetime.split(":")[0].split("/")[3]) )){
|
|
var status = "away";
|
|
var statuscolor = "#E64C00";
|
|
} else {
|
|
var status = "online";
|
|
var statuscolor = "rgb(0,200,50)";
|
|
}
|
|
str=str+($(this).text()+' <code style="background-color: '+statuscolor+';">'+status+'</code><br>time: '+getTime+"<br><br>");
|
|
});
|
|
$("#time").html("pst "+datetime);
|
|
$("#status").html(str);
|
|
}
|
|
});
|
|
//rest of loop shit
|
|
if(autoscroll==true){
|
|
var elem = document.getElementById('chat');
|
|
elem.scrollTop = elem.scrollHeight;
|
|
}
|
|
}
|
|
//run the text cheak stuff
|
|
$("#text").keyup(function(event) {
|
|
if (event.keyCode === 13 && !event.shiftKey) {
|
|
$("#text").val($("#text").val().slice(0,-1));
|
|
runtext();
|
|
}
|
|
});
|
|
function runtext(){
|
|
if(($("#text").val().toLowerCase().includes("nigger"))==true){
|
|
document.getElementById('hardr').play();
|
|
return false;
|
|
} else if($("#text").val().length>2000){
|
|
show('errorbox');
|
|
$("#errorboxtext").html("your text can not be greater than 2000 characters<br>"+'<input autocomplete="off" class="autost" style="background-color: rgba(0,0,0,0);" type="button" onclick="cleartext()" value="clear text?" />');
|
|
return false;
|
|
} else {
|
|
$("#chatform").submit();
|
|
}
|
|
$("#text").val('');
|
|
}
|
|
</script>
|
|
<?php $_SESSION['errormsglogin']=""; ?>
|
|
</body>
|
|
</html>
|