Do something

This commit is contained in:
Bruno Rybársky 2024-04-11 10:36:40 +02:00
parent 154fc4103f
commit 277232bdd1
5 changed files with 89 additions and 13 deletions

@ -270,7 +270,7 @@ ul.navpage_list {
display: flex !important; display: flex !important;
max-height: 200px !important; max-height: 200px !important;
width: inherit; width: inherit;
box-sizing: border-box; box-sizing: content-box;
transition-delay: .1s; transition-delay: .1s;
} }
.navsite_item:not(:hover) .navpage_list { .navsite_item:not(:hover) .navpage_list {

@ -8,7 +8,10 @@ function endpoint($endpoint_data): array
return match ($endpoint_data["action"]) { return match ($endpoint_data["action"]) {
"getMyFiles" => listFiles(), "getMyFiles" => listFiles(),
"getAllFiles" => listFiles(false), "getAllFiles" => listFiles(false),
"UploadFiles" => parseIncomingFiles(), "uploadFiles" => parseIncomingFiles(),
"addToGroup" => addToGroup($endpoint_data['group_id'], $endpoint_data['file_id']),
"myFileExists" => fileExists($endpoint_data['file_id'], ),
"FileExists" => fileExists($endpoint_data['file_id'], false),
default => ["Status" => "Fail", "message" => "Invalid action"], default => ["Status" => "Fail", "message" => "Invalid action"],
}; };
} }

@ -24,11 +24,24 @@ function getEndpoint($endpoint_name): string
$endpoint_file = $routerConfig["endpoint_dir"] . $endpoint_name . ".php"; $endpoint_file = $routerConfig["endpoint_dir"] . $endpoint_name . ".php";
if (file_exists($endpoint_file)){ if (file_exists($endpoint_file)){
$output = runEndpoint($endpoint_file); $output_tmp = runEndpoint($endpoint_file);
$output["Endpoint"] = $endpoint_name;
switch (gettype($output)) {
case 'string':
$output = $output_tmp;
$output['Status'] = 'Success';
break;
case 'bool':
$output['Status'] = $output ? 'Success' : 'Fail';
break;
default:
$output['Status'] = 'Fail';
$output["Error"] = "Endpoint error";
http_response_code(500);
}
} }
else{ else{
$output["Error"] = "Not found"; $output["Error"] = "Not found";
$output["Endpoint"] = $endpoint_name;
http_response_code(404); http_response_code(404);
} }

18
lib/meme.php Normal file

@ -0,0 +1,18 @@
<?php
function addMeme(string $memeText, int $imageID): bool
{
global $mysqli;
if(fileExists($imageID)){
$stmtMemeAdd = $mysqli->prepare('INSERT INTO Memes (AuthorID, TextContent, FileID) VALUES (?, ?, ?)');
$stmtMemeAdd->bind_param('isi', $_SESSION['ID'], htmlspecialchars($memeText), $imageID);
$stmtMemeAdd->execute();
return true;
}
return false;
}
function renderMemeGallery() :string
{
return "";
}

@ -43,7 +43,7 @@ function getIncomingFiles(): array
return $files3; return $files3;
} }
function saveUploadedFileInDatabase($filePath, $fileType):bool function saveUploadedFileInDatabase($filePath, $fileType): bool
{ {
global $mysqli; global $mysqli;
$stmt = $mysqli->prepare("INSERT INTO Files (Path, Type, UploadedBy, UploadedAt) VALUES (?, ?, ?, NOW())"); $stmt = $mysqli->prepare("INSERT INTO Files (Path, Type, UploadedBy, UploadedAt) VALUES (?, ?, ?, NOW())");
@ -91,20 +91,20 @@ function doImageUpload($inFile, $outFile): bool
} }
} }
function listFiles($onlyMine = true):array function listFiles($onlyMine = true): array
{ {
$output = ["Status" => "Fail"]; $output = ["Status" => "Fail"];
require_once "lib/account.php"; require_once "lib/account.php";
if(($onlyMine && isLoggedIn()) || (!$onlyMine && isModerator())) { if (($onlyMine && isLoggedIn()) || (!$onlyMine && isModerator())) {
global $mysqli; global $mysqli;
$query = "SELECT ID, Path, Type, UploadedAt, UploadedBy FROM Files"; $query = "SELECT ID, Path, Type, UploadedAt, UploadedBy FROM Files";
if($onlyMine){ if ($onlyMine) {
$query .= " WHERE UploadedBy = ?"; $query .= " WHERE UploadedBy = ?";
} }
$stmt = $mysqli->prepare($query); $stmt = $mysqli->prepare($query);
if($onlyMine) { if ($onlyMine) {
$stmt->bind_param("i", $_SESSION["ID"]); $stmt->bind_param("i", $_SESSION["ID"]);
} }
@ -164,7 +164,7 @@ function parseIncomingFiles(): array
} }
} }
$output = ["Status" => "Fail"]; $output = ["Status" => "Fail"];
if($success){ if ($success) {
$output["Status"] = "Success"; $output["Status"] = "Success";
} }
return $output; return $output;
@ -180,10 +180,52 @@ function getUploadPath($type = "unknown", $filename = "hehe"): string
'image' => 'webp', 'image' => 'webp',
default => 'dummy', default => 'dummy',
}; };
if($extension != "dummy") { if ($extension != "dummy") {
return "uploads/$type/$id/$date/$filename.$extension"; return "uploads/$type/$id/$date/$filename.$extension";
} } else {
else {
return ""; return "";
} }
}
function fileExists(int $fileId, bool $onlyMine = true): bool
{
if(!$fileId) {
return false;
}
global $mysqli;
if (!$onlyMine && !isAdmin()) {
$onlyMine = true;
}
$query = 'SELECT ID FROM Files WHERE ID = ?' . $onlyMine ? ' AND UploadedBy = ?' : '';
$stmtfileexists = $mysqli->prepare($query);
if ($onlyMine) {
$stmtfileexists->bind_param('ii', $fileId, $_SESSION['id']);
} else {
$stmtfileexists->bind_param('i', $fileId);
}
$stmtfileexists->execute();
return $stmtfileexists->affected_rows > 0;
}
function addToGroup(int $groupId, int $fileId): bool
{
$output = ["Status" => "Fail"];
if (!$groupId || !$fileId) {
return $output;
}
global $mysqli;
$stmtcheck = $mysqli->prepare('SELECT ID FROM FileGroups WHERE CreatorID != ? AND ID = ?');
$stmtcheck->bind_param('ii', $_SESSION['id'], $groupId);
$stmtcheck->execute();
if ($stmtcheck->affected_rows == 0) {
if (fileExists($fileId, false)) {
$stmtadd = $mysqli->prepare('INSERT INTO FileGroups (FileID, CreatorID, ID) VALUES (?, ?, ?)');
$stmtadd->bind_param('iii', $fileId, $_SESSION['id'], $groupId);
$stmtadd->execute();
if ($stmtadd->affected_rows > 0) {
$output["Status"] = "Success";
}
}
}
return $output;
} }