Files
Claude 178c9cb550 PSGFX 2.0: new glass UI, guided connect, community icons
- Redesigned interface: larger, glass style with a chromatic rim, animated
  view/tab switches, search in the app list, Icon/Background/Music/Name tabs.
- Connecting moved into a centred pop-up with step-by-step instructions;
  the header shows a connection button instead of the IP field.
- Home layout preview: the selected tile keeps its white outline on every
  side, the row slides when the selection moves, Games/Media fade, and the
  background crossfades.
- Hiding or moving a tile off the current tab selects the next one, with Undo.
- Community icons: browse, use, share and report icons per game. The server
  (community-server/, PHP) checks uploads, saves them to a public GitHub repo
  with thumbnails and a site mirror, and has a moderation page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B3zQD8DZVn9N7NJ6NHPLGg
2026-10-11 18:51:54 +00:00

15 lines
525 B
PHP

<?php
// POST report.php id=<icon path> -> one report per person per icon.
require __DIR__ . '/lib.php';
cors();
if ($_SERVER['REQUEST_METHOD'] !== 'POST') fail('Use POST.', 405);
$id = (string)($_POST['id'] ?? '');
if (!preg_match('#^icons/[A-Z]{4}\d{5}/[^/]+\.png$#', $id)) fail('Unknown icon.');
$me = who();
data_update('reports', function (array &$r) use ($id, $me) {
$e = $r[$id] ?? ['by' => [], 'ok' => false];
if (!in_array($me, $e['by'], true)) $e['by'][] = $me;
$r[$id] = $e;
});
out(['ok' => true]);