Add table-based legacy design
15
app/Helpers/LegacyHelper.php
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
if (!function_exists('isLegacy')) {
|
||||
/**
|
||||
* Checks if the current hostname should return the legacy site
|
||||
* @return bool
|
||||
*/
|
||||
function isLegacy(): bool {
|
||||
return (
|
||||
request()->getHost() === "legacy.wah.moe" || // Accessed via legacy.wah.moe domain
|
||||
str_starts_with(request()->getHost(), "192.168") || // Accessed via local IP address
|
||||
!request()->hasHeader("Host") // Browser does not send Host header (e.g. NCSA MOSAIC)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -8,7 +8,11 @@
|
|||
class RoscoLekoController extends Controller {
|
||||
public function getImages(): array {
|
||||
$images = [];
|
||||
foreach (File::glob(public_path('images/pandamonium').'/*') as $path) {
|
||||
$path = 'images/pandamonium';
|
||||
if (isLegacy()) {
|
||||
$path = 'images/pandamonium-legacy';
|
||||
}
|
||||
foreach (File::glob(public_path($path).'/*') as $path) {
|
||||
$image_data = [];
|
||||
try {
|
||||
$exif = exif_read_data($path);
|
||||
|
|
|
@ -24,7 +24,7 @@ public static function insertGuestbookEntry(Request $request) {
|
|||
$newEntry->message = $request->get('message');
|
||||
$newEntry->ip = $request->ip();
|
||||
$newEntry->agent = $request->userAgent();
|
||||
$newEntry->admin = auth()->check();
|
||||
$newEntry->legacy_flagged = isLegacy();
|
||||
$newEntry->save();
|
||||
}
|
||||
|
||||
|
|
|
@ -8,11 +8,18 @@
|
|||
|
||||
class LastFMCurrent extends Component {
|
||||
public $track;
|
||||
public $artUrl;
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct($track) {
|
||||
$this->track = $track;
|
||||
if (isLegacy()) {
|
||||
$path = parse_url($track["image"], PHP_URL_PATH);
|
||||
$this->artUrl = "//".request()->getHttpHost()."/proxy/lastfm/".basename($path);
|
||||
} else {
|
||||
$this->artUrl = $track["image"];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,10 +17,16 @@ public function __construct() {}
|
|||
* Get the view / contents that represent the component.
|
||||
*/
|
||||
public function render(): View|Closure|string {
|
||||
if (isLegacy()) {
|
||||
return view('components.layout-legacy', [
|
||||
'isChristmas' => $this->isItChristmas()
|
||||
]);
|
||||
} else {
|
||||
return view('components.layout', [
|
||||
'isChristmas' => $this->isItChristmas()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function isItChristmas() : bool {
|
||||
$currentDate = new DateTime();
|
||||
|
|
|
@ -17,6 +17,17 @@ public function __construct() {}
|
|||
|
||||
|
||||
public function getWah(): string {
|
||||
if (isLegacy()) {
|
||||
try {
|
||||
$response = Http::get('https://api.tinyfox.dev/img.json?animal=wah');
|
||||
$data = $response->json();
|
||||
if ($data == null) return "";
|
||||
$path = parse_url("https://api.tinyfox.dev" . $data["loc"], PHP_URL_PATH);
|
||||
return "//".request()->getHttpHost()."/proxy/wah/".basename($path);
|
||||
} catch (Exception $ex) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
try {
|
||||
$response = Http::get('https://api.tinyfox.dev/img.json?animal=wah');
|
||||
$data = $response->json();
|
||||
|
@ -26,7 +37,6 @@ public function getWah(): string {
|
|||
} catch (Exception $ex) {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"ext-exif": "*",
|
||||
"browner12/helpers": "^3.7",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"intervention/image": "^3.9",
|
||||
"laravel/framework": "^10.10",
|
||||
|
@ -13,8 +15,7 @@
|
|||
"scrivo/highlight.php": "v9.18.1.10",
|
||||
"spatie/laravel-honeypot": "^4.3",
|
||||
"spatie/laravel-html": "^3.4",
|
||||
"ua-parser/uap-php": "^3.9.14",
|
||||
"ext-exif": "*"
|
||||
"ua-parser/uap-php": "^3.9.14"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
|
|
1100
composer.lock
generated
|
@ -5,7 +5,7 @@
|
|||
|
||||
return [
|
||||
'name' => env('APP_NAME', 'wah.moe'),
|
||||
'version' => '2025.06.12',
|
||||
'version' => '2025.08.10-dev',
|
||||
'env' => env('APP_ENV', 'production'),
|
||||
'debug' => (bool) env('APP_DEBUG', false),
|
||||
'url' => env('APP_URL', 'http://localhost'),
|
||||
|
@ -25,6 +25,7 @@
|
|||
App\Providers\AuthServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
browner12\helpers\HelperServiceProvider::class
|
||||
])->toArray(),
|
||||
'aliases' => Facade::defaultAliases()->merge([
|
||||
])->toArray(),
|
||||
|
|
|
@ -99,7 +99,7 @@ body {
|
|||
color: var(--foreground);
|
||||
min-height: 100%;
|
||||
background-color: hsla(0, 0%, 0%, 0);
|
||||
padding: 10px;
|
||||
padding: 5px;
|
||||
font-family: "PT Serif";
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ div.page-container > div:last-child {
|
|||
|
||||
header {
|
||||
display: grid;
|
||||
grid-template-columns: 66px 1fr;
|
||||
grid-template-columns: 80px 1fr;
|
||||
grid-template-rows: 1fr;
|
||||
grid-column-gap: 15px;
|
||||
grid-row-gap: 0;
|
||||
|
@ -178,8 +178,6 @@ header {
|
|||
}
|
||||
|
||||
header img {
|
||||
filter: drop-shadow(2px 2px hsl(0, 0%, 66%));
|
||||
margin-right: 10px;
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
|
||||
|
|
BIN
public/images/logo-v2.gif
Executable file
After Width: | Height: | Size: 746 B |
BIN
public/images/pandamonium-legacy/filters.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
public/images/pandamonium-legacy/frontrowseat.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
public/images/pandamonium-legacy/gel-drawer.jpg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
public/images/pandamonium-legacy/lxdesk.jpg
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
public/images/pandamonium-legacy/pa_meister.jpg
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
public/images/pandamonium-legacy/projectionist.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/images/pandamonium-legacy/technician.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
public/images/pandamonium-legacy/three-of-them.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
public/images/pandamonium-legacy/two-of-them.jpg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
public/images/roscoe_tile.jpg
Executable file
After Width: | Height: | Size: 53 KiB |
BIN
public/images/separator.gif
Normal file
After Width: | Height: | Size: 145 B |
BIN
public/images/wah-paw-v2.gif
Normal file
After Width: | Height: | Size: 746 B |
|
@ -16,7 +16,7 @@
|
|||
<hr>
|
||||
<ul>
|
||||
@foreach($sites as $site)
|
||||
<li><a href="{{ $site->url }}">{{ $site->name }}</a> - {{ $site->description }}</li>
|
||||
<li><a href="{{ $site->url }}"><font color="#000000">{{ $site->name }}</font></a> - {{ $site->description }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -1,10 +1,23 @@
|
|||
@if (isLegacy())
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr>
|
||||
<td><img src="{{ $artUrl }}" alt="Album cover for {{ $track["title"] }} by {{ $track["artist"] }}"></td>
|
||||
<td width="10px"> </td>
|
||||
<td>
|
||||
<h2>{{ $track["header"] }}:</h2>
|
||||
<a href="{{ $track["url"] }}"><font color="#000000">{{ $track["title"] }}</font></a><br>
|
||||
by {{ $track["artist"] }}<br>
|
||||
</td>
|
||||
</tr></table>
|
||||
<br>
|
||||
@else
|
||||
<div class="current-track">
|
||||
<div>
|
||||
<img src="{{ $track["image"] }}" alt="Album cover for {{ $track["title"] }} by {{ $track["artist"] }}">
|
||||
<img src="{{ $artUrl }}" alt="Album cover for {{ $track["title"] }} by {{ $track["artist"] }}">
|
||||
</div>
|
||||
<div>
|
||||
<h2>{{ $track["header"] }}:</h2>
|
||||
<a href="{{ $track["url"] }}">{{ $track["title"] }}</a><br>
|
||||
<a href="{{ $track["url"] }}"><font color="#000000">{{ $track["title"] }}</font></a><br>
|
||||
by {{ $track["artist"] }}<br>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
@if (isLegacy())
|
||||
<table border="1" cellspacing="0" cellpadding="5">
|
||||
<font size="+2"><b>Top 10 Tracks (Last 30 days):</b></font>
|
||||
@else
|
||||
<table class="music-top10">
|
||||
<caption>
|
||||
<h2 style="margin-bottom: 5px">Top 10 Tracks (Last 30 days):</h2>
|
||||
</caption>
|
||||
@endif
|
||||
<tr>
|
||||
<th><b>#</b></th>
|
||||
<th><b>Track</b></th>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<tr>
|
||||
<td>{{ $count }}</td>
|
||||
<td><a href="{{ $track["url"] }}">{{ $track["title"] }}</a></td>
|
||||
<td><a href="{{ $track["url"] }}"><font color="#000000">{{ $track["title"] }}</font></a></td>
|
||||
<td>{{ $track["artist"] }}</td>
|
||||
<td>{{ $track["plays"] }}</td>
|
||||
</tr>
|
||||
|
|
102
resources/views/components/layout-legacy.blade.php
Normal file
|
@ -0,0 +1,102 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<!--suppress ALL -->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>wah! (dot moe) - {{ $title }}</title>
|
||||
</head>
|
||||
|
||||
<body background="/images/roscoe_tile.jpg" bgcolor="#6595fb" text="#000000" link="#FFFFFF" alink="#999999" vlink="#FFFFFF">
|
||||
<table bgcolor="#6595fb" width="850px" cellpadding="0" cellspacing="0" border="0">
|
||||
<!-- HEADER -->
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="nopad">
|
||||
<tr>
|
||||
<td width="90px">
|
||||
<img src="/images/logo-v2.gif">
|
||||
</td>
|
||||
<td valign="middle"><font color="#FFFFFF" face="sans-serif">
|
||||
<font size="+10"><b><i>wah! (dot moe)</i></b></font><br>
|
||||
<i>"i mean it looks alright, but then you realise its all tables" ~ alice</i>
|
||||
</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- HEADER END -->
|
||||
|
||||
<!-- TOP NAV -->
|
||||
<tr><td height="5px" bgcolor="#3366FF"><font size="-2"> </font></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#3366FF" border="0" class="nopad" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="10px" bgcolor="#3366FF"> </td>
|
||||
<td bgcolor="#3366FF" width="100%"><font face="sans-serif" color="#FFFFFF">
|
||||
<x-navigation></x-navigation>
|
||||
</font></td>
|
||||
<td width="5px" bgcolor="#3366FF" > </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td height="5px" bgcolor="#3366FF"><font size="-2"> </font></td></tr>
|
||||
<!-- TOP NAV END -->
|
||||
|
||||
<!-- CONTENT -->
|
||||
<tr><td height="5px" bgcolor="#FFFFFF"><font size="-2"> </font></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#FFFFFF" border="0" class="nopad" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="10px" bgcolor="#FFFFFF"> </td>
|
||||
<td bgcolor="#ffffff" width="100%"><font face="sans-serif">
|
||||
{{ $slot }}
|
||||
</font></td>
|
||||
<td width="5px" bgcolor="#FFFFFF" > </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td height="5px" bgcolor="#FFFFFF"><font size="-2"> </font></td></tr>
|
||||
<!-- CONTENT END -->
|
||||
|
||||
<!-- BOTTOM NAV -->
|
||||
<tr><td height="5px" bgcolor="#3366FF"><font size="-2"> </font></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#3366FF" border="0" class="nopad" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="10px" bgcolor="#3366FF"> </td>
|
||||
<td bgcolor="#3366FF" width="100%"><font face="sans-serif" color="#FFFFFF">
|
||||
<x-navigation></x-navigation>
|
||||
</font></td>
|
||||
<td width="5px" bgcolor="#3366FF" > </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td height="5px" bgcolor="#3366FF"><font size="-2"> </font></td></tr>
|
||||
<!-- BOTTOM NAV END -->
|
||||
|
||||
<!-- FOOTER -->
|
||||
<tr><td height="5px"><font size="-2"> </font></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0" class="nopad" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="10px"> </td>
|
||||
<td width="100%"><font face="sans-serif" color="#FFFFFF">
|
||||
© RoscoeDaWah 2021-2025
|
||||
</font></td>
|
||||
<td width="5px"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td height="5px"><font size="-2"> </font></td></tr>
|
||||
<!-- FOOTER END -->
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -27,7 +27,7 @@
|
|||
<div id="header">
|
||||
<header>
|
||||
<div>
|
||||
<img src="{{ asset('/images/logo.png') }}" width="65" alt="A pixel art depiction of a paw, in three alternating shades of orange.">
|
||||
<img src="{{ asset('/images/wah-paw-v2.gif') }}" width="84" alt="A pixel art depiction of a paw, in three alternating shades of orange.">
|
||||
</div>
|
||||
<div>
|
||||
<h1>wah!</h1>
|
||||
|
@ -41,6 +41,7 @@
|
|||
<div id="content">
|
||||
<main>
|
||||
{{ $slot }}
|
||||
<div class="clear"></div>
|
||||
</main>
|
||||
</div>
|
||||
<div>
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
<nav>
|
||||
<strong>Pages:</strong>
|
||||
<a href="/">home</a> |
|
||||
@if(!isLegacy())
|
||||
<a href="//wiki.wah.moe">wah-ki</a> |
|
||||
@endif
|
||||
<a href="//git.wah.moe">git</a> |
|
||||
<a href="/pub">files</a> |
|
||||
<a href="gopher://wah.moe">gopher</a> |
|
||||
<a href="/bookmarks">bookmarks</a> |
|
||||
<a href="/guestbook">guestbook</a> |
|
||||
<a href="/music">music</a> |
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
@if(!isLegacy())
|
||||
<div class="wah">
|
||||
<h3>Random Wah!</h3>
|
||||
@if ($wah !== "")
|
||||
|
@ -8,3 +9,4 @@
|
|||
<p>Unable to retrieve image</p>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<td>
|
||||
<form method="POST" action="/guestbook">
|
||||
@csrf
|
||||
<x-honeypot/>
|
||||
@if(!isLegacy())<x-honeypot/>@endif
|
||||
<table class="form" role="presentation">
|
||||
<tr>
|
||||
<td>
|
||||
|
@ -32,7 +32,16 @@
|
|||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
@if(isLegacy())
|
||||
<input type="submit" name="Submit" VALUE="Submit">
|
||||
@else
|
||||
<button type="submit">Submit</button>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -44,12 +53,52 @@
|
|||
<li>You can submit an entry <u>once every hour</u>.</li>
|
||||
<li>Your IP address is logged but <u>not</u> publicly displayed.</li>
|
||||
<li>Any entries that appear to be spam <u>will</u> be removed.</li>
|
||||
@if (isLegacy())
|
||||
<li>This form is broken in super-old browsers.</li>
|
||||
<li>Entries submitted on this site are flagged for manual review.</li>
|
||||
@endif
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@if (isLegacy())
|
||||
<font size="+2"><b>Entries ({{ count($entries) }} total)</b></font>
|
||||
<table cellspacing="10" cellpadding="0" border="0">
|
||||
@foreach ($entries as $entry)
|
||||
{{-- Skip entries flagged as legacy --}}
|
||||
@if($entry->legacy_flagged) @php continue @endphp @endif
|
||||
@php
|
||||
$user_agent = $parser->parse($entry->agent);
|
||||
@endphp
|
||||
<tr>
|
||||
<td>
|
||||
<table cellspacing="2" cellpadding="5" border="1" width="100%">
|
||||
<tr><td>
|
||||
Submitted by <b>{{ $entry->name }}</b>
|
||||
on <b>{{ $entry->created_at->format('Y-m-d') }}</b>
|
||||
at <b>{{ $entry->created_at->format('h:i:s A (e)') }}</b>
|
||||
</td></tr>
|
||||
<tr><td>{{ $entry->message }}</td></tr>
|
||||
<tr><td>
|
||||
@if($entry->agent === "Agent Unavailable")
|
||||
<i>Agent unavailable</i>
|
||||
@else
|
||||
@if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other")
|
||||
<i>Posted using <b>{{ $entry->agent }}</b></i>
|
||||
@else
|
||||
<i>Posted using <b>{{ $user_agent->ua->toString() }}</b>
|
||||
on <b>{{ $user_agent->os->toString() }}</b></i>
|
||||
@endif
|
||||
@endif
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</table>
|
||||
@else
|
||||
<hr>
|
||||
<h2>Entries <small>({{ count($entries) }} total)</small></h2>
|
||||
@foreach ($entries as $entry)
|
||||
|
@ -65,11 +114,16 @@
|
|||
<hr>
|
||||
@if($entry->agent === "Agent Unavailable")
|
||||
<address>Agent unavailable</address>
|
||||
@else
|
||||
@if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other")
|
||||
<address>Posted using <strong>{{ $entry->agent }}</strong></address>
|
||||
@else
|
||||
<address>Posted using <strong>{{ $user_agent->ua->toString() }}</strong>
|
||||
on <strong>{{ $user_agent->os->toString() }}</strong></address>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<br>
|
||||
@endforeach
|
||||
@endif
|
||||
</x-layout>
|
||||
|
|
|
@ -5,25 +5,29 @@
|
|||
<p>Hi! This is my personal homepage on the <strong>W</strong>orld <strong>W</strong>ide
|
||||
<strong>W</strong>eb.
|
||||
</p>
|
||||
@if(!isLegacy())
|
||||
<br>
|
||||
@endif
|
||||
<p>Some quick facts about me:</p>
|
||||
<ul>
|
||||
<li>{{ $age }} y/o, he/him, British</li>
|
||||
<li>Theatre Technician and "Web Developer"</li>
|
||||
<li>Loves ETC desks, prefers Generics to LEDs for some reason</li>
|
||||
<li>Spends way too much time on his computer</li>
|
||||
<li>Favorite games: <a href="https://steamcommunity.com/id/RoscoeDaWah/recommended/420530/">OneShot</a>,
|
||||
<li>Favorite games: <a href="https://steamcommunity.com/id/RoscoeDaWah/recommended/420530/"><font color="#000000">OneShot</font></a>,
|
||||
Minecraft, Stardew Valley, N++ and Starbound</li>
|
||||
<li><a href="http://wxqa.com/">CWOP</a> member</li>
|
||||
<li><a href="http://wxqa.com/"><font color="#000000">CWOP</font></a> member</li>
|
||||
</ul>
|
||||
@if(!isLegacy())
|
||||
<br>
|
||||
@endif
|
||||
<p>Interests:</p>
|
||||
<ul>
|
||||
<li><strong>Tech Theatre</strong> - Lighting, Stage Management, etc.</li>
|
||||
<li><strong>Programming</strong> - HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (<a
|
||||
href="https://github.com/RoscoeDaWah">GitHub</a>)</li>
|
||||
<li><strong>Photography</strong> - <a href="https://www.flickr.com/photos/roscoedawah/">Flickr</a></li>
|
||||
<li><strong>Gaming</strong> - <a href="https://steamcommunity.com/id/RoscoeDaWah/">Steam Profile</a>
|
||||
href="https://github.com/RoscoeDaWah"><font color="#000000">GitHub</font></a>)</li>
|
||||
<li><strong>Photography</strong> - <a href="https://www.flickr.com/photos/roscoedawah/"><font color="#000000">Flickr</font></a></li>
|
||||
<li><strong>Gaming</strong> - <a href="https://steamcommunity.com/id/RoscoeDaWah/"><font color="#000000">Steam Profile</font></a>
|
||||
</li>
|
||||
</ul>
|
||||
</x-layout>
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
<x-slot:title>Absolute Pandamonium!</x-slot:title>
|
||||
<x-slot:cardImage>{{ asset('/images/embeds/pandamonium.png') }}</x-slot:cardImage>
|
||||
<x-slot:cardDescription>Follow the adventures of Rosco, Leko, Viz and AJ!</x-slot:cardDescription>
|
||||
@if (isLegacy())
|
||||
<p><i>Click images for full-size version (56k no!)</i></p>
|
||||
@foreach($images as $image)
|
||||
<a href="{{ str_replace('-legacy', '', $image["path"]) }}"><img src="{{ $image["path"] }}" @if(isset($image["description"])) alt="{{ $image["description"] }}" @endif></a>
|
||||
@if(isset($image["description"]))
|
||||
<p>{{$image["description"]}}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
@else
|
||||
<div class="rosco-leko-gallery">
|
||||
@foreach($images as $image)
|
||||
<div>
|
||||
|
@ -12,4 +21,5 @@
|
|||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</x-layout>
|
||||
|
|
|
@ -26,3 +26,19 @@
|
|||
Route::post('/guestbook', [GuestbookController::class, 'addEntry'])
|
||||
->middleware('validator')
|
||||
->middleware('rate_limit');
|
||||
|
||||
Route::get('/proxy/wah/{image}', function (string $image) {
|
||||
$client = new \GuzzleHttp\Client();
|
||||
$response = $client->request('GET', 'https://api.tinyfox.dev/hourly/wahs/'.$image);
|
||||
|
||||
return response($response->getBody())
|
||||
->header('Content-Type', $response->getHeader('Content-Type'));
|
||||
});
|
||||
|
||||
Route::get('/proxy/lastfm/{image}', function (string $image) {
|
||||
$client = new \GuzzleHttp\Client();
|
||||
$response = $client->request('GET', 'https://lastfm.freetls.fastly.net/i/u/174s/'.$image);
|
||||
|
||||
return response($response->getBody())
|
||||
->header('Content-Type', $response->getHeader('Content-Type'));
|
||||
});
|
||||
|
|