summaryrefslogtreecommitdiff
path: root/src/codegen/emoticons.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/emoticons.php')
-rw-r--r--src/codegen/emoticons.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/codegen/emoticons.php b/src/codegen/emoticons.php
new file mode 100644
index 0000000..51b9ed6
--- /dev/null
+++ b/src/codegen/emoticons.php
@@ -0,0 +1,36 @@
+<?php
+
+$em_dir = SRCDIR . "/static/emoticons";
+$emoticons = array_map(
+ fn($i) => [
+ pathinfo($i, PATHINFO_FILENAME),
+ getimagesize($em_dir . "/" . $i)["3"]
+ ],
+ array_values(
+ array_filter(
+ scandir($em_dir),
+ fn($i) =>
+ $i[0] !== "." &&
+ is_file($em_dir . "/" . $i) &&
+ strtolower(pathinfo($i, PATHINFO_EXTENSION)) === "gif"
+ )
+ )
+);
+
+usort($emoticons, fn($a, $b) => strlen($b[0]) <=> strlen($a[0]));
+
+$emoticons_alpha_lookup = [];
+foreach ($emoticons as $i => $emoticon) {
+ $emoticons_alpha_lookup []= [$i, $emoticon[0]];
+}
+usort($emoticons_alpha_lookup, fn($a, $b) => $a[1] <=> $b[1]);
+$emoticons_alpha_lookup = array_column($emoticons_alpha_lookup, 0);
+
+return [
+ "emoticons.js",
+ "/* auto-generated at " . date("c") . " */\nvar EMOTICONS = " .
+ json_encode([
+ $emoticons,
+ $emoticons_alpha_lookup,
+ ], JSON_PRETTY_PRINT) . ";\n",
+];