<?php /// RIT.WTF --- Daddy munson /// Copyright © 2024 Freya Murphy <freya@freyacat.org> // Create global assets object function __make_assets(): object { $assets = array( // 80x33 buttons 'buttons' => array( 'amd' => 'amd.gif', 'apocalypse' => 'apocalypse.gif', 'dither' => 'dither.gif', 'download' => 'download.gif', 'html' => 'html.gif', 'ie' => 'ie.gif', 'netscape' => 'netscape.gif', ), // css styles 'css' => array( 'main' => 'main.css', // main style 'anim' => 'anim.css', // animations 'home' => 'home.css', 'fire' => 'fire.css', 'gallery' => 'gallery.css', 'error' => 'error.css', ), // why does rit keep catching on fire! 'fires' => array( 'battery' => 'battery.jpg', 'gosnell' => 'gosnell.jpg', 'sol' => 'sol.jpg', 'stadium' => 'stadium.jpg', ), // standard imaged images 'images' => array( 'rit' => 'rit.jpg', 'rotchie' => 'rotchie.jpg', ), // goofy ahh memes 'memes' => array( 'awshit' => 'awshit.jpg', 'bean' => 'bean.jpg', 'bisexual' => 'bisexual.jpg', 'counter' => 'counter.jpg', 'election' => 'election.jpg', 'girl' => 'girl.jpg', 'gracies' => 'gracies.jpg', 'obama' => 'obama.jpg', 'onion' => 'onion.jpg', 'pepsi' => 'pepsi.jpg', 'phone' => 'phone.jpg', 'rats' => 'rats.jpg', 'recharge' => 'recharge.jpg', 'roo' => 'roo.jpg', 'silence' => 'silence.jpg', 'twitter' => 'twitter.jpg', 'ul' => 'ul.jpg', 'umbrella' => 'umbrella.jpg', ), // munson art gallery 'munson' => array( '1.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg', ), // sanders art gallery 'sanders' => array( '1.jpg', '2.jpg', '3.jpg', ), // text gifs 'text' => array( 'counting' => 'counting.gif', 'education' => 'education.gif', 'food' => 'food.gif', 'housing' => 'housing.gif', ), // feature films 'videos' => array( 'review' => '2012 - Rap in Review.mp4', 'jedi' => '2015 - The Return of the Holiday Rap: A Jedi\'s Chant.mp4', 'brick' => '2022 - In the Brick of Time.mp4', 'raiders' => '2023 - Raiders of the Golden Brick.mp4', 'wizard' => '2024 - The Wonderful Wizard of RIT.mp4', ), ); function update_paths(&$data, $path) { foreach ($data as $key => $value) { if (is_array($value)) { update_paths($value, "$path/$key"); $data[$key] = $value; } else { $data[$key] = "$path/$value?rev=1"; } } $data = (object) $data; } update_paths($assets, 'public'); return $assets; } define('ASSETS', __make_assets()); // Helper functions // Parse request route function __get_route() { $method = $_SERVER['REQUEST_METHOD']; $uri_str = $_SERVER['REQUEST_URI']; $uri = parse_url($uri_str); $path = '/'; if ($uri && array_key_exists('path', $uri)) $path = $uri['path']; return [$method, $path]; } define('ROUTE', __get_route()); // Pages function home() { $css = ASSETS->css->home; include('web/home.php'); } function fire() { $css = ASSETS->css->fire; include('web/fire.php'); } function gallery() { $css = ASSETS->css->gallery; include('web/gallery.php'); } function error($code) { $css = ASSETS->css->error; include('web/error.php'); } // Dispatch try { match (ROUTE) { ['GET', '/'] => home(), ['GET', '/fire'] => fire(), ['GET', '/gallery'] => gallery(), default => error(404) }; } catch (Throwable $e) { error(500); }