From 8925a9526a1d3eac914030b3069713f56c37e55a Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Tue, 9 Dec 2025 16:50:07 +0500 Subject: feat: emoteset editors --- emotesets/index.php | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 emotesets/index.php (limited to 'emotesets/index.php') diff --git a/emotesets/index.php b/emotesets/index.php new file mode 100644 index 0000000..5be3bda --- /dev/null +++ b/emotesets/index.php @@ -0,0 +1,206 @@ +query("SELECT * FROM emote_sets WHERE is_global = TRUE LIMIT 1", PDO::FETCH_ASSOC); + + if ($rows->rowCount()) { + $emote_set = $rows->fetch(); + } else { + generate_alert("/404.php", "Global emoteset is not found", 404); + exit; + } +} +// featured emoteset +else if ($id == "featured") { + $rows = $db->query("SELECT * FROM emote_sets WHERE is_featured = TRUE LIMIT 1", PDO::FETCH_ASSOC); + + if ($rows->rowCount()) { + $emote_set = $rows->fetch(); + } else { + generate_alert("/404.php", "Featured emoteset is not found", 404); + exit; + } +} +// connected emoteset +else if (isset($_GET["alias_id"])) { + $alias_id = $_GET["alias_id"]; + $platform = $_GET["platform"] ?? "twitch"; + + $stmt = $db->prepare("SELECT es.* FROM emote_sets es + INNER JOIN connections co ON co.alias_id = ? AND co.platform = ? + INNER JOIN acquired_emote_sets aes ON aes.user_id = co.user_id + WHERE aes.is_default = TRUE + "); + $stmt->execute([$alias_id, $platform]); + + if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { + $emote_set = $row; + } else { + generate_alert("/404.php", "Emoteset is not found for alias ID $alias_id ($platform)", 404); + exit; + } +} +// specified emoteset +else if (!empty($id)) { + $stmt = $db->prepare("SELECT es.* FROM emote_sets es WHERE es.id = ?"); + $stmt->execute([$id]); + + if ($row = $stmt->fetch()) { + $emote_set = $row; + } else { + generate_alert("/404.php", "Emoteset ID $id is not found", 404); + exit; + } +} + +$user_id = $_SESSION["user_id"] ?? ""; +$emote_sets = null; + +// fetching emotes +if ($emote_set) { + $emote_set = Emoteset::from_array_extended($emote_set, $user_id, $db); +} elseif (!CONFIG['emoteset']['public']) { + generate_alert("/404.php", "The public list of emotesets is disabled", 403); + exit; +} else { + $emote_sets = []; + foreach ($db->query("SELECT * FROM emote_sets", PDO::FETCH_ASSOC) as $row) { + array_push($emote_sets, Emoteset::from_array_extended($row, $user_id, $db)); + } +} + +if (CLIENT_REQUIRES_JSON) { + if ($emote_sets != null) { + json_response([ + "status_code" => 200, + "message" => null, + "data" => $emote_sets + ]); + exit; + } else if ($emote_set != null) { + json_response([ + "status_code" => 200, + "message" => null, + "data" => $emote_set + ]); + exit; + } else { + json_response([ + "status_code" => 404, + "message" => "Emoteset(s) not found", + "data" => null + ], 404); + exit; + } +} +?> + + + + + <?php + $title = match ($emote_set == null) { + true => count($emote_sets) . ' emotesets', + false => "Emoteset - {$emote_set->name}", + }; + + echo "$title - " . CONFIG['instance']['name']; + ?> + + + + + + +
+
+ +
+
+ + +
+ +
+ emotes); + } else { + echo 'Nothing found...'; + } + ?> +
+ + +
+ editors)): ?> +

This emoteset does not have any editors.

+ +

+ Editors: + editors as $e): ?> + + + + owner, $_SESSION['user_id']) && $emote_set->owner->id == $_SESSION['user_id'] && $e['id'] !== $emote_set->owner->id): ?> + + + +

+ +
+ owner) && $emote_set->owner->id === $_SESSION['user_id']): ?> +
+ +
+
+

Add editor:

+ + + +
+
+
+ + +
+
+
+
+ + + \ No newline at end of file -- cgit v1.2.3