summaryrefslogtreecommitdiff
path: root/pages/api/design.php
blob: 1894a7505dcd412f16f73e40d3866cc99d3be15e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/session.inc"; global $isLoggedIn;
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/random.inc";

if (!$isLoggedIn || !isset($_GET["type"]) || !isset($_GET["member"])) die("Not logged in or missing operand");
if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/ponies/" . $_GET["member"] . ".png")) die("No initial Pony Town character");

$designs = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/designs/" . $_GET["member"] . ".json"), true);

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, true);

switch ($_GET["type"]) {
    case "name":
        $designs[$_GET["id"]]["name"] = trim(strip_tags(substr(base64_decode($_GET["value"]), 0, 100)));

        if (trim(strip_tags(substr(base64_decode($_GET["value"]), 0, 100))) === "" && $_GET["id"] !== "_main") {
            unset($designs[$_GET["id"]]);
            echo("&");
        }

        break;

    case "note":
        $designs[$_GET["id"]]["note"] = trim(strip_tags(substr(base64_decode($_GET["value"]), 0, 100)));
        break;

    case "upload":
        $id = random();

        $file = base64_decode($input["file"]);
        $image = @imagecreatefromstring($file);

        imagealphablending($image, false);
        imagesavealpha($image, true);

        imagepng($image, "/tmp/temp-" . $id . ".png");
        $text = base64_encode(file_get_contents("/tmp/temp-" . $id . ".png"));
        unlink("/tmp/temp-" . $id . ".png");

        $designs[$id] = [
            "name" => "Untitled",
            "note" => "ID: " . $id,
            "image" => $text
        ];

        break;

    default:
        die("Invalid type");
}

file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/designs/" . $_GET["member"] . ".json", json_encode($designs));

while (trim(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/designs/" . $_GET["member"] . ".json")) === "") {
    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/designs/" . $_GET["member"] . ".json", json_encode($designs));
}