158 lines
4.1 KiB
PHP
158 lines
4.1 KiB
PHP
<?php
|
|
$dbuser = "peehaitchpea";
|
|
$dbpass = "ballsdeep";
|
|
$dbname = "peehaitchpea";
|
|
|
|
error_reporting(E_ALL);
|
|
ini_set("display_errors", "On");
|
|
|
|
// -----------------------------------------------------
|
|
// COMMON FUNCTIONS
|
|
// -----------------------------------------------------
|
|
|
|
date_default_timezone_set("UTC");
|
|
|
|
function query($query, $callback = null, $exceptioncallback = null) {
|
|
global $conn;
|
|
|
|
try {
|
|
$result = $conn->query($query);
|
|
} catch(mysqli_sql_exception $e) {
|
|
if($exceptioncallback !== null) $exceptioncallback($e);
|
|
return;
|
|
}
|
|
|
|
if($result === false) {
|
|
echo("SQL ERROR: " . mysqli_error($conn));
|
|
} else if($result === true) {
|
|
if($callback !== null) $callback(null, 0);
|
|
} else if($callback !== null && $result->num_rows > 0) {
|
|
$id = 0;
|
|
|
|
while($row = $result->fetch_assoc()) $callback($row, $id++);
|
|
}
|
|
}
|
|
|
|
// -----------------------------------------------------
|
|
// SQL INITIALIZATION
|
|
// -----------------------------------------------------
|
|
|
|
try {
|
|
$conn = new mysqli("localhost", $dbuser, $dbpass, $dbname);
|
|
} catch(mysqli_sql_exception $e) {
|
|
if(isset($_GET["geterrormsg"]))
|
|
die("Connection failed: " . $e);
|
|
else
|
|
die("SQL error. Try again later.");
|
|
}
|
|
|
|
if($conn->connect_error) {
|
|
if(isset($_GET["geterrormsg"]))
|
|
die("Connection failed: " . $conn->connect_error);
|
|
else
|
|
die("SQL error. Try again later.");
|
|
}
|
|
|
|
// -----------------------------------------------------
|
|
// INITIAL SETUP - CREATE NECESSARY TABLES
|
|
// -----------------------------------------------------
|
|
|
|
$tables = [];
|
|
|
|
query("SHOW TABLES;", function($row) {
|
|
global $tables;
|
|
|
|
$tables[] = $row[array_key_first($row)];
|
|
});
|
|
|
|
if(!in_array("for_moderation", $tables)) {
|
|
query("CREATE TABLE `for_moderation` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;");
|
|
}
|
|
|
|
if(!in_array("for_stallman", $tables)) {
|
|
query("CREATE TABLE `for_stallman` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
`selected` boolean NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;");
|
|
}
|
|
|
|
$cmd = $_GET['cmd'];
|
|
|
|
switch($cmd) {
|
|
case "newmodmessages":
|
|
$arr = json_decode(file_get_contents("php://input"));
|
|
foreach ($arr as $value) {
|
|
query("INSERT INTO `for_moderation`(`text`) VALUES (\"" . $conn->real_escape_string($value) . "\");");
|
|
}
|
|
break;
|
|
|
|
case "newstallmanmessages":
|
|
$arr = json_decode(file_get_contents("php://input"));
|
|
foreach ($arr as $value) {
|
|
query("INSERT INTO `for_stallman`(`text`, `selected`) VALUES (\"" . $conn->real_escape_string($value) . "\", false);");
|
|
}
|
|
break;
|
|
|
|
case "getselectedmessage":
|
|
query("SELECT `text` FROM `for_stallman` WHERE `selected` = true LIMIT 1;", function($row) {
|
|
echo $row["text"];
|
|
});
|
|
break;
|
|
|
|
case "selectmessage":
|
|
query("UPDATE `for_stallman` SET `selected` = false");
|
|
query("UPDATE `for_stallman` SET `selected` = true WHERE `id` = " . file_get_contents("php://input") . ";");
|
|
break;
|
|
|
|
case "unselectmessage":
|
|
query("UPDATE `for_stallman` SET `selected` = false");
|
|
break;
|
|
|
|
case "getmodmessages":
|
|
$arr = [];
|
|
|
|
query("SELECT `id`, `text` FROM `for_moderation`;", function($row) {
|
|
global $arr;
|
|
$arr[$row["id"]] = $row["text"];
|
|
});
|
|
|
|
echo(json_encode($arr));
|
|
break;
|
|
|
|
case "getstallmanmessages":
|
|
$arr = [];
|
|
|
|
query("SELECT `id`, `text` FROM `for_stallman`;", function($row) {
|
|
global $arr;
|
|
$arr[$row["id"]] = $row["text"];
|
|
});
|
|
|
|
echo(json_encode($arr));
|
|
break;
|
|
|
|
case "deletemodmessages":
|
|
$arr = json_decode(file_get_contents("php://input"));
|
|
foreach ($arr as $value) {
|
|
query("DELETE FROM `for_moderation` WHERE `id` = " . $conn->real_escape_string($value) . ";");
|
|
}
|
|
break;
|
|
|
|
case "deletestallmanmessages":
|
|
$arr = json_decode(file_get_contents("php://input"));
|
|
foreach ($arr as $value) {
|
|
query("DELETE FROM `for_stallman` WHERE `id` = " . $conn->real_escape_string($value) . ";");
|
|
}
|
|
break;
|
|
|
|
default:
|
|
die("Loading React...");
|
|
}
|
|
?>
|
|
|