summaryrefslogtreecommitdiff
path: root/includes/jobs/PKMembers.php
blob: c6ad8972d8a33593b56d7767a31212f5620353c1 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

$options = json_decode($argv[1], true);
$_SERVER['DOCUMENT_ROOT'] = "../..";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/composer/vendor/autoload.php';
use ColorThief\ColorThief;

echo("Loading...\n");

$app = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true);
$system = $options["system"];

if ($app["other"]["id"] === $system) {
    echo("Using authentication\n");
    $ctx = stream_context_create([
        'http' => [
            'method' => 'GET',
            'header' =>
                "Authorization: " . $app["other"]["token"] . "\r\n"
        ]
    ]);
} else {
    echo("Not using authentication\n");
    $ctx = stream_context_create([
        'http' => [
            'method' => 'GET'
        ]
    ]);
}

echo("Fetching...\n");
$data = file_get_contents("https://pluralkit.equestria.dev/v2/systems/$system/members", false, $ctx);

if (trim($data) !== "" && $data !== false) {
    echo("Data is valid, saved it\n");
    $parsed = json_decode($data, true);

    foreach ($parsed as $index => $member) {
        echo(($member["display_name"] ?? $member["name"]) . "\n");

        if (isset($member["avatar_url"])) {
            $dominantColor = substr(ColorThief::getColor($member["avatar_url"], outputFormat: "hex"), 1);
        } else {
            $dominantColor = "ffffff";
        }

        $parsed[$index]["dominant_color"] = $dominantColor;

        if (!isset($member["color"])) {
            $parsed[$index]["color"] = $dominantColor;
        }
    }

    $data = json_encode($parsed, JSON_PRETTY_PRINT);
    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/members.json", $data);
} else {
    echo("Data is invalid\n");
}

echo("Clearing cache\n");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/navigation.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/home.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/alphabet.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/splitting.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/species.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/planner.json", "{}");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/relations.json", "{}");
echo("Cleared cache\n");

require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/jobs/RefreshCache.php";