rit.wtf/index.php

172 lines
3.4 KiB
PHP
Raw Normal View History

2025-02-07 20:35:47 +00:00
<?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',
),
);
2025-02-08 01:04:05 +00:00
define('REVS', array(
'main.css' => 2,
));
2025-02-07 20:35:47 +00:00
function update_paths(&$data, $path) {
foreach ($data as $key => $value) {
if (is_array($value)) {
update_paths($value, "$path/$key");
$data[$key] = $value;
} else {
2025-02-08 01:04:05 +00:00
$rev = REVS[$value] ?? 1;
$data[$key] = "{$path}/{$value}?rev={$rev}";
2025-02-07 20:35:47 +00:00
}
}
$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);
}