aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/js/neverSaid.js35
-rw-r--r--resources/js/schemeSwap.js70
-rw-r--r--resources/views/admin/bookmarks.blade.php28
-rw-r--r--resources/views/admin/guestbook.blade.php32
-rw-r--r--resources/views/admin/import-success.blade.php12
-rw-r--r--resources/views/admin/import.blade.php18
-rw-r--r--resources/views/bookmarks.blade.php18
-rw-r--r--resources/views/calculators.blade.php (renamed from resources/views/pages/calculators.blade.php)0
-rw-r--r--resources/views/components/current-track.blade.php4
-rw-r--r--resources/views/components/layout.blade.php113
-rw-r--r--resources/views/components/minimal-error.blade.php28
-rw-r--r--resources/views/components/minimal.blade.php0
-rw-r--r--resources/views/components/navbar.blade.php18
-rw-r--r--resources/views/components/top-tracks.blade.php16
-rw-r--r--resources/views/components/track.blade.php6
-rw-r--r--resources/views/computers.blade.php187
-rw-r--r--resources/views/errors/401.blade.php9
-rw-r--r--resources/views/errors/402.blade.php9
-rw-r--r--resources/views/errors/403.blade.php9
-rw-r--r--resources/views/errors/404.blade.php31
-rw-r--r--resources/views/errors/418.blade.php9
-rw-r--r--resources/views/errors/419.blade.php9
-rw-r--r--resources/views/errors/429.blade.php9
-rw-r--r--resources/views/errors/500.blade.php9
-rw-r--r--resources/views/errors/503.blade.php9
-rw-r--r--resources/views/errors/generic-error.blade.php7
-rw-r--r--resources/views/errors/guestbook-ipban.blade.php7
-rw-r--r--resources/views/errors/guestbook-ratelimit.blade.php7
-rw-r--r--resources/views/errors/layout.blade.php53
-rw-r--r--resources/views/errors/minimal.blade.php24
-rw-r--r--resources/views/guestbook.blade.php (renamed from resources/views/pages/guestbook.blade.php)37
-rw-r--r--resources/views/home.blade.php45
-rw-r--r--resources/views/includes/admin/header.blade.php12
-rw-r--r--resources/views/includes/footer.blade.php2
-rw-r--r--resources/views/music.blade.php6
-rw-r--r--resources/views/pages/admin/guestbook-del-confirm.blade.php33
-rw-r--r--resources/views/pages/admin/guestbook.blade.php32
-rw-r--r--resources/views/pages/admin/index.blade.php9
-rw-r--r--resources/views/pages/bookmarks.blade.php52
-rw-r--r--resources/views/pages/bot.blade.php7
-rw-r--r--resources/views/pages/computers.blade.php442
-rw-r--r--resources/views/pages/home.blade.php88
-rw-r--r--resources/views/pages/music.blade.php66
-rw-r--r--resources/views/pages/projects.blade.php16
-rw-r--r--resources/views/pages/template.blade.php6
-rw-r--r--resources/views/pages/weather.blade.php61
46 files changed, 692 insertions, 1008 deletions
diff --git a/resources/js/neverSaid.js b/resources/js/neverSaid.js
new file mode 100644
index 0000000..5b58d60
--- /dev/null
+++ b/resources/js/neverSaid.js
@@ -0,0 +1,35 @@
+// Define an array of strings
+const neverSaid = [
+ "<td style=\"width: 105px\"><strong>ASM:</strong></td> <td>The Director liked all the props we got today.</td>",
+ "<td style=\"width: 105px\"><strong>PM:</strong></td> <td>Ah ha, a revolve. Terrific.</td>",
+ "<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I don't know, let's look at the ground plan.</td>",
+ "<td style=\"width: 105px\"><strong>Set Designer:</strong></td> <td>Well, let's just have whatever is cheaper.</td>",
+ "<td style=\"width: 105px\"><strong>Sound:</strong></td> <td>Better turn that down a bit. We don't want to deafen them.</td>",
+ "<td style=\"width: 105px\"><strong>Director:</strong></td> <td>Sorry, my mistake.</td>",
+ "<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>This equipment is more complicated than we need.</td>",
+ "<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>I really think my big scene should be cut.</td>",
+ "<td style=\"width: 105px\"><strong>SM:</strong></td> <td>Can we doo that scene change again please?",
+ "<td style=\"width: 105px\"><strong>LX designer:</strong></td> <td>Bit more light from those big chaps at the side. Yes that's right, the ones on stalks whatever they are called.</td>",
+ "<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>All the equipment works perfectly.</td>",
+ "<td style=\"width: 105px\"><strong>Musicians:</strong></td> <td>So what if that's the end of a call. Let's just finish this bit off.</td>",
+ "<td style=\"width: 105px\"><strong>Wardrobe:</strong></td> <td>Now, when exactly is the first dress rehearsal?",
+ "<td style=\"width: 105px\"><strong>Workshop:</strong></td> <td>I don't want anyone to know, but if you insist then yes, I admit it, I have just done an all-nighter.</td>",
+ "<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>This costume is so comfortable.</td>",
+ "<td style=\"width: 105px\"><strong>Admin:</strong></td> <td>The level of overtime payments here are simply unacceptable. Our backstage staff deserve better.</td>",
+ "<td style=\"width: 105px\"><strong>Box Office:</strong></td> <td>Comps? No problem.</td>",
+ "<td style=\"width: 105px\"><strong>Set Designer:</strong></td> <td>You're right, it looks dreadful.</td>",
+ "<td style=\"width: 105px\"><strong>Flyman:</strong></td> <td>No, my lips are sealed. What I may or may not have seen remains a secret.</td>",
+ "<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>That had nothing to do with the computer, it was my fault.</td>",
+ "<td style=\"width: 105px\"><strong>Crew:</strong></td> <td>No, no, I'm sure that's our job.</td>",
+ "<td style=\"width: 105px\"><strong>SMgt:</strong></td> <td>Thanks, but I don't drink",
+ "<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>Let me stand down here with my back to the audience.</td>",
+ "<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I can't really manage those big fast power tools myself.</td>",
+ "<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I prefer to use these little hand drills.</td>",
+ "<td style=\"width: 105px\"><strong>All:</strong></td> <td>Let's go and ask the Production Manager. He'll know.</td>"
+]
+
+// Generate a random index into the array
+const randomIndex = Math.floor(Math.random() * neverSaid.length);
+
+// Use document.write to output the random string
+document.write(neverSaid[randomIndex]);
diff --git a/resources/js/schemeSwap.js b/resources/js/schemeSwap.js
new file mode 100644
index 0000000..3baa09b
--- /dev/null
+++ b/resources/js/schemeSwap.js
@@ -0,0 +1,70 @@
+/**
+ * Retrieves a cookies value
+ * @param {string} cname Cookie name
+ * @returns {string} Cookie value
+ */
+function getCookie(cname) {
+ let name = cname + "=";
+ let decodedCookie = decodeURIComponent(document.cookie);
+ let ca = decodedCookie.split(';');
+ for(let i = 0; i <ca.length; i++) {
+ let c = ca[i];
+ while (c.charAt(0) === ' ') {
+ c = c.substring(1);
+ }
+ if (c.indexOf(name) === 0) {
+ return c.substring(name.length, c.length);
+ }
+ }
+ return "";
+}
+
+/**
+ * Sets/creates a cookie
+ * @param {string} cname Cookie name
+ * @param {string} cvalue Cookie value
+ * @param {number} exdays Cookie lifespan (days)
+ */
+function setCookie(cname, cvalue, exdays) {
+ const d = new Date();
+ d.setTime(d.getTime() + (exdays*24*60*60*1000));
+ let expires = "expires="+ d.toUTCString();
+ document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/;SameSite=Strict;Domain=.diskfloppy.me";
+}
+
+/**
+ * Checks if a cookie exists
+ * @param {string} cname Cookie name
+ * @returns {boolean} If cookie exists or not
+ */
+function cookieExists(cname) {
+ const cvalue = getCookie(cname);
+ return cvalue !== "";
+}
+
+/**
+ * Swaps the colorscheme
+ * @param {string} scheme Color scheme ID
+ */
+function swapScheme(scheme) {
+ setCookie("colorscheme", scheme, 90);
+ document.getElementById("css-colorscheme").href = `/css/colorschemes/${scheme}.css`;
+ console.log(`Set colorscheme to ${getCookie("colorscheme")}`)
+}
+
+function setSchemeSelector() {
+ if (!cookieExists("colorscheme")) {
+ setCookie("colorscheme", "catppuccin-macchiato", 90);
+ } else {
+ const scheme = getCookie("colorscheme");
+ const scheme_selector = document.getElementById("scheme-selector");
+ if (scheme && scheme_selector) {
+ for (let option of scheme_selector.options) {
+ if (option.value === scheme) {
+ option.selected = true;
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/resources/views/admin/bookmarks.blade.php b/resources/views/admin/bookmarks.blade.php
new file mode 100644
index 0000000..f06539c
--- /dev/null
+++ b/resources/views/admin/bookmarks.blade.php
@@ -0,0 +1,28 @@
+<x-layout>
+ <x-slot:title>Admin | Bookmarks</x-slot:title>
+ @foreach($categories as $category)
+ <div class="info-section info-admin-section">
+ <h2>{{ $category->name }}</h2>
+ <table class="info-admin">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Description</th>
+ <th>URL</th>
+ <th>Priority</th>
+ <th class="blank"></th>
+ </tr>
+ @foreach($category->sites as $site)
+ <tr>
+ <td>{{ $site->id }}</td>
+ <td>{{ $site->name }}</td>
+ <td>{{ $site->description }}</td>
+ <td>{{ $site->url }}</td>
+ <td>{{ $site->priority }}</td>
+ <td><a href="?action=delete&id={{ $site->id }}"><button>Delete</button></a></td>
+ </tr>
+ @endforeach
+ </table>
+ </div>
+ @endforeach
+</x-layout>
diff --git a/resources/views/admin/guestbook.blade.php b/resources/views/admin/guestbook.blade.php
new file mode 100644
index 0000000..1f5dab3
--- /dev/null
+++ b/resources/views/admin/guestbook.blade.php
@@ -0,0 +1,32 @@
+<x-layout>
+ <x-slot:title>Admin | Guestbook</x-slot:title>
+ <div class="info-section">
+ <h2>Statistics</h2>
+ <hr>
+ <strong>Unique IP addresses:</strong> {{ $guestbook_unique_addr }}<br>
+ <strong>Entries:</strong> {{ $guestbook_entry_count }}
+ </div>
+ <br>
+ <div class="info-section">
+ <h2>Entries</h2>
+ <hr>
+ <table class="info-admin fullwidth">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>IP Address</th>
+ <th>Message</th>
+ <th class="blank"></th>
+ </tr>
+ @foreach ($entries as $entry)
+ <tr>
+ <td>{{ $entry->id }}</td>
+ <td>{{ $entry->name }}</td>
+ <td>{{ $entry->ip }}</td>
+ <td>{{ $entry->message }}</td>
+ <td><a href="?action=delete&id={{ $entry->id }}"><button>Delete</button></a></td>
+ </tr>
+ @endforeach
+ </table>
+ </div>
+</x-layout>
diff --git a/resources/views/admin/import-success.blade.php b/resources/views/admin/import-success.blade.php
new file mode 100644
index 0000000..f6d5eb3
--- /dev/null
+++ b/resources/views/admin/import-success.blade.php
@@ -0,0 +1,12 @@
+<x-layout>
+ <x-slot:title>Admin | Import</x-slot:title>
+ <div class="info-section">
+ <h2>Imported data</h2>
+ <hr>
+ <ul>
+ @foreach($tables as $name => $data)
+ <li><strong>{{ ucwords(str_replace('__', ' ', $name)) }}:</strong> {{ $data['count'] }} record(s)</li>
+ @endforeach
+ </ul>
+ </div>
+</x-layout>
diff --git a/resources/views/admin/import.blade.php b/resources/views/admin/import.blade.php
new file mode 100644
index 0000000..e663724
--- /dev/null
+++ b/resources/views/admin/import.blade.php
@@ -0,0 +1,18 @@
+<x-layout>
+ <x-slot:title>Admin | Import</x-slot:title>
+ <form class="import" action="{{ route('admin.import.submit') }}" method="post" enctype="multipart/form-data">
+ @csrf
+ <label for="data_file"><strong>File:</strong></label>
+ <input class="file" type="file" name="data_file" accept=".json"><br>
+ <h2>What to import:</h2>
+ <input type="checkbox" name="guestbook__entries" checked>
+ <label for="guestbook__entries">Guestbook Entries</label><br>
+ <input type="checkbox" name="guestbook__bans" checked>
+ <label for="guestbook__bans">Guestbook Bans</label><br>
+ <input type="checkbox" name="guestbook__entries" checked>
+ <label for="bookmark__categories">Bookmark Categories</label><br>
+ <input type="checkbox" name="guestbook__entries" checked>
+ <label for="bookmark_sites">Bookmark Sites</label><br>
+ <button type="submit">Import</button>
+ </form>
+</x-layout>
diff --git a/resources/views/bookmarks.blade.php b/resources/views/bookmarks.blade.php
new file mode 100644
index 0000000..9cf6d77
--- /dev/null
+++ b/resources/views/bookmarks.blade.php
@@ -0,0 +1,18 @@
+<x-layout>
+ <x-slot:title>Bookmarks</x-slot:title>
+ @foreach($categories as $category)
+ <table class="info-table" role="presentation">
+ <caption>
+ <h2>{{ $category->name }}</h2>
+ <hr>
+ </caption>
+ <tbody>
+ @foreach($category->sites as $site)
+ <tr>
+ <td><a href="{{ $site->url }}">{{ $site->name }}</a> - {{ $site->description }}</td>
+ </tr>
+ @endforeach
+ </tbody>
+ </table>
+ @endforeach
+</x-layout>
diff --git a/resources/views/pages/calculators.blade.php b/resources/views/calculators.blade.php
index 5d629ed..5d629ed 100644
--- a/resources/views/pages/calculators.blade.php
+++ b/resources/views/calculators.blade.php
diff --git a/resources/views/components/current-track.blade.php b/resources/views/components/current-track.blade.php
new file mode 100644
index 0000000..d42ad3b
--- /dev/null
+++ b/resources/views/components/current-track.blade.php
@@ -0,0 +1,4 @@
+<div class="info-table current-track">
+ <h2>Last/Current Track:</h2>
+ <a href="{{ $track["url"] }}">{{ $track["title"] }} • {{ $track["artist"] }}</a><br>
+</div>
diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php
new file mode 100644
index 0000000..2f79318
--- /dev/null
+++ b/resources/views/components/layout.blade.php
@@ -0,0 +1,113 @@
+@php // Get colorscheme from cookie and apply immediately
+ $colorscheme = request()->cookie('colorscheme', 'catppuccin-macchiato');
+@endphp
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <!-- Global -->
+ <meta charset="utf-8">
+ <meta property="og:type" content="website">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="theme-color" content="#333333">
+ <link rel="stylesheet" href="{{ asset("/css/colorschemes/$colorscheme.css") }}" id="css-colorscheme"/>
+ <link rel="stylesheet" href="{{ asset('/css/master.css') }}"/>
+ <link rel="icon" type="image/png" href="{{ asset('/favicon-32x32.png') }}" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="{{ asset('/favicon-16x16.png') }}" sizes="16x16"/>
+ <script src="{{ asset('/js/schemeSwap.js') }}"></script>
+ {!! (intval(date('n')) == 12) ? '<script src="/js/christmas/snow.js"></script>' : '' !!}
+
+ <!-- Page-specific -->
+ <title>{{ $title ?? 'Unknown' }} - diskfloppy.me</title>
+ <meta property="og:title" content="diskfloppy.me | {{ $title }}">
+ <meta property="og:image" content="/favicon-128x128.png">
+</head>
+<body onload="setSchemeSelector()">
+<div class="page">
+ <div id="header" class="header">
+ @if (auth()->check())
+ <div class="banner red-banner">
+ <div>
+ <a href="/admin/guestbook">Guestbook</a>&nbsp;|
+ <a href="/admin/bookmarks">Bookmarks</a> |
+ <a href="/admin/import">Import</a>
+ </div>
+ <div><strong>Logged in as:</strong> {{ auth()->user()->name }} (<a href="/logout">logout</a>)</div>
+ </div>
+ @endif
+ <x-navbar title="{{ $title }}"/>
+ <hr>
+ </div> <!-- header -->
+ <div id="content" class="content" role="main">
+ {{ $slot }}
+ </div> <!-- content -->
+ <div id="footer" class="footer">
+ <hr>
+ <div class="footer" role="contentinfo">
+ <a href="https://dimden.dev/" class="button">
+ <img src="https://dimden.dev/services/images/88x31.gif" width="88" height="31"
+ class="pixel" alt="dimden.dev">
+ </a>&nbsp;
+ <a href="https://www.linux.org/" class="button">
+ <img src="{{ URL::asset('images/buttons/linuxnow.gif') }}" width="88"
+ class="pixel" height="31" alt="Linux NOW!">
+ </a>&nbsp;
+ <a href="https://www.vim.org/" class="button">
+ <img src="{{ URL::asset('images/buttons/vim.gif') }}" width="88" height="31"
+ class="pixel" alt="vim">
+ </a>&nbsp;
+ <a href="https://wave.webaim.org/" class="button">
+ <img src="{{ URL::asset('images/buttons/evaluatedWAVE.png') }}" width="88" height="31"
+ class="pixel" alt="Evaluated to be accessible!">
+ </a>&nbsp;
+ <a href="https://jigsaw.w3.org/css-validator/check/referer" class="button">
+ <img src="{{ URL::asset('images/buttons/vcss-blue.gif') }}" width="88" height="31"
+ class="pixel" alt="Valid CSS!">
+ </a>&nbsp;
+ <a href="https://wiby.me/" class="button">
+ <img src="{{ URL::asset('images/buttons/wiby.gif') }}" width="88" height="31"
+ class="pixel" alt="Wiby - Search Engine for the Classic Web">
+ </a><br>
+ This site is best viewed at 1024x768 with 16-bit color or better<br>
+ &copy; floppydisk 2021-{{ date('Y') }}, v{{ config('app.version') }} <a
+ href="https://github.com/floppydisk05/diskfloppy.me">Source</a>,
+ Served by {{ gethostname() }}<br>
+ <label for="scheme-selector">Color Scheme:</label>
+ <select onchange="swapScheme(this.value)" id="scheme-selector">
+ <optgroup label="Misc">
+ <option value="c64">C64</option>
+ </optgroup>
+ <optgroup label="Light">
+ <option value="catppuccin-latte">Catppuccin Latte</option>
+ <option value="gruvbox">Gruvbox</option>
+ <option value="man-page">Man Page</option>
+ <option value="papercolor-light">Papercolor Light</option>
+ <option value="rose-pine-dawn">Rosé Pine Dawn</option>
+ <option value="solarized-light">Solarized Light</option>
+ <option value="terminal-basic">Terminal Basic</option>
+ </optgroup>
+ <optgroup label="Dark">
+ <option value="catppuccin-frappe">Catppuccin Frappé</option>
+ <option value="catppuccin-macchiato" selected="selected">Catppuccin Macchiato</option>
+ <option value="catppuccin-mocha">Catppuccin Mocha</option>
+ <option value="gruvbox-dark">Gruvbox Dark</option>
+ <option value="gruvbox-material">Gruvbox Material</option>
+ <option value="maia">Maia</option>
+ <option value="mono-amber">Mono Amber</option>
+ <option value="mono-cyan">Mono Cyan</option>
+ <option value="mono-green">Mono Green</option>
+ <option value="mono-red">Mono Red</option>
+ <option value="mono-white">Mono White</option>
+ <option value="mono-yellow">Mono Yellow</option>
+ <option value="papercolor-dark">Papercolor Dark</option>
+ <option value="rose-pine">Rosé Pine</option>
+ <option value="rose-pine-moon">Rose Pine Moon</option>
+ <option value="shel">Shel</option>
+ <option value="slate">Slate</option>
+ <option value="solarized-dark">Solarized Dark</option>
+ </optgroup>
+ </select><br>
+ </div>
+ </div> <!-- footer -->
+</div> <!-- page -->
+</body>
+</html>
diff --git a/resources/views/components/minimal-error.blade.php b/resources/views/components/minimal-error.blade.php
new file mode 100644
index 0000000..3be5511
--- /dev/null
+++ b/resources/views/components/minimal-error.blade.php
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <title>{{ $title ?? '' }}</title>
+ <link rel="stylesheet" href="{{ URL::asset ('css/minimal.css') }}"/>
+</head>
+
+<body>
+ <h1>Error {{ $code }} | <strong>{{ $message }}</strong></h1>
+ <hr align="left">
+ <p>Here, have a cat...</p>
+ <img src="https://http.cat/{{ $code }}" width="500"><br><br>
+ <p>If you believe this is a server error, contact the <a href="mailto:webmaster@diskfloppy.me">webmaster</a></p>
+ <br>
+ <h4>Diagnostic Info</h4>
+ <table><tr><td>
+ <code>
+ Server: &nbsp;{{ gethostname() }}<br>
+ Your IP: {{ Request::ip() }}<br>
+ Root: &nbsp;&nbsp;&nbsp;{!! url('') !!}<br>
+ Path: &nbsp;&nbsp;&nbsp;@if(Request::path() == "/")/@else/{{ Request::path() }}/@endif<br>
+ Epoch: &nbsp;&nbsp;{{ now()->timestamp }}<br>
+ Agent: &nbsp;&nbsp;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0 </code>
+ </td></tr></table>
+ <hr align="left">
+ <p>&copy; floppydisk 2021-2024</p>
+</body>
+</html>
diff --git a/resources/views/components/minimal.blade.php b/resources/views/components/minimal.blade.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/resources/views/components/minimal.blade.php
diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php
new file mode 100644
index 0000000..80cd2b0
--- /dev/null
+++ b/resources/views/components/navbar.blade.php
@@ -0,0 +1,18 @@
+<nav>
+ <h1>diskfloppy.me | <strong>{{ $title }}</strong></h1>
+ <div class="nav-wrapper">
+ <div>
+ <a href="/" title="Home"><img class="pixel" src="/images/icons/nav/home2.png" alt="Home" width="32" height="32"></a>
+ <a href="//git.diskfloppy.me/" title="cgit"><img class="pixel" src="/images/icons/nav/repo.png" alt="cgit" width="32" height="32"></a>
+ <a href="/pub/" title="Public Files"><img class="pixel" src="/images/icons/nav/pubfiles.png" alt="Public Files" width="32" height="32"></a>
+ <a href="/computers/" title="Computers"><img class="pixel" src="/images/icons/nav/computers.png" alt="Computers" width="32" height="32"></a>
+ <a href="/bookmarks/" title="Bookmarks"><img class="pixel" src="/images/icons/nav/bookmarks.png" alt="Bookmarks" width="32" height="32"></a>
+ <a href="/guestbook/" title="Guestbook"><img class="pixel" src="/images/icons/nav/guestbook.png" alt="Guestbook" width="32" height="32"></a>
+ <a href="//weather.diskfloppy.me/" title="Weather"><img class="pixel" src="/images/icons/nav/weather.png" alt="Weather" width="32" height="32"></a>
+ <a href="/music/" title="Music"><img class="pixel" src="/images/icons/nav/music.png" alt="Music" width="32" height="32"></a>&nbsp;&nbsp;
+ </div>
+ <div>
+ <a href="/login/" title="Admin Login"><img class="pixel" src="/images/icons/nav/admin.png" alt="Admin Login" width="32" height="32"></a>&nbsp;&nbsp;
+ </div>
+ </div>
+</nav>
diff --git a/resources/views/components/top-tracks.blade.php b/resources/views/components/top-tracks.blade.php
new file mode 100644
index 0000000..a8c94f2
--- /dev/null
+++ b/resources/views/components/top-tracks.blade.php
@@ -0,0 +1,16 @@
+<table class="music-top10">
+ <caption>
+ <h2 style="margin-bottom: 5px">Top 10 Tracks (Last 30 days):</h2>
+ </caption>
+ <tr>
+ <th><b>#</b></th>
+ <th><b>Track</b></th>
+ <th><b>Artist</b></th>
+ <th><b>Plays</b></th>
+ </tr>
+ @php($count = 0)
+ @foreach ($tracks as $track)
+ @php($count++)
+ <x-track :track="$track" :count="$count"/>
+ @endforeach
+</table>
diff --git a/resources/views/components/track.blade.php b/resources/views/components/track.blade.php
new file mode 100644
index 0000000..b176e95
--- /dev/null
+++ b/resources/views/components/track.blade.php
@@ -0,0 +1,6 @@
+<tr>
+ <td>{{ $count }}</td>
+ <td><a href="{{ $track["url"] }}">{{ $track["title"] }}</a></td>
+ <td>{{ $track["artist"] }}</td>
+ <td>{{ $track["plays"] }}</td>
+</tr>
diff --git a/resources/views/computers.blade.php b/resources/views/computers.blade.php
new file mode 100644
index 0000000..062eee9
--- /dev/null
+++ b/resources/views/computers.blade.php
@@ -0,0 +1,187 @@
+@extends('layouts.default')
+@section('title', 'Computers')
+@section('description', 'Computers I own or have owned.')
+@php
+// TODO: AMD whitebox, 745, D531, 1525, server, vaio, qosmio, packard bell
+@endphp
+@section('content')
+ <table class="computers">
+ <tr>
+ <th>PICTURES</th>
+ <th>SPECS &amp; DESCRIPTION</th>
+ </tr>
+ <tr>
+ <td>Random Whitebox</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>486DX2 (50MHz)</li>
+ <li>16MB RAM</li>
+ <li>280MB HDD</li>
+ <li>Windows NT 3.51</li>
+ </ul>
+ <p class="description">
+ Had been monitoring the ventilation system in a school since the late 1990s,
+ only stopped because the power supply internally exploded. Replaced the PSU with
+ a standard ATX PSU and an ATX to AT adaptor and it sprung back to life.
+ Motherboard is a Gigabyte GA486IM with 4 PCI slots, 4 ISA slots and 2 VLB slots.
+ Has two identical ISA serial/parallel/game-port cards with one acting as the
+ HDD/FDD controller. Also has a Realtek NIC with both RJ45 and BNC. GPU is a
+ Cirrus Logic card and is astoundingly shit.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>2023 MacBook Pro 14"</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Apple M3 Pro</li>
+ <li>18GB RAM</li>
+ <li>500GB SSD</li>
+ <li>macOS Sonoma</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>2018 MacBook Pro 13"</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel i5-8259U @ 2.3GHz</li>
+ <li>Intel Iris Plus Graphics 655</li>
+ <li>8GB RAM</li>
+ <li>250GB SSD</li>
+ <li>macOS Sonoma</li>
+ </ul>
+ <p class="description">
+ Old main computer. Really like the touch bar, absolutely hate the butterfly
+ keyboard.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>2012 Lenovo ThinkPad T430</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Core i7</li>
+ <li>16GB RAM</li>
+ <li>Windows 7 Professional / NixOS</li>
+ </ul>
+ <p class="description">
+ One of my main computers. Has been modified to use a classic keyboard instead of
+ the stock Lenovo keyboard.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>2005 IBM ThinkPad X41T</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Pentium M @ 1.6GHz</li>
+ <li>Mobile Intel Express Chipset Family (128MB)</li>
+ <li>1.5GB RAM</li>
+ <li>40GB HDD</li>
+ <li>Windows XP Tablet PC Edition</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>1999 Dell OptiPlex GX1</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Pentium II (Deschutes) @ 400MHz</li>
+ <li>ATI 3D Rage Pro (4MB)</li>
+ <li>639MB</li>
+ <li>40GB HDD</li>
+ <li>MS-DOS 6.22 &amp; WFW 3.10</li>
+ </ul>
+ <p class="description">
+ Cool computer that uses Slot 1 CPUs. After a lot of trial and error I managed to
+ max out the memory. Has a riser that sports 2 PCI and 2 ISA slots (one PCI and
+ ISA share the same slot).
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>2003 IBM ThinkPad T40</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Pentium M @ 1.3GHz</li>
+ <li>ATI Mobility Radeon 7500 (32MB)</li>
+ <li>1GB RAM</li>
+ <li>30GB HDD</li>
+ <li>Windows 2000 Professional</li>
+ </ul>
+ <p class="description">
+ Useful laptop thanks to its parallel port. Has the ubiquitous GPU solder issues
+ which I &quot;&quot;&quot;&quot;fixed&quot;&quot;&quot;&quot; by jamming a CF card
+ between the GPU chip and the keyboard.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>2010 HP Compaq Elite 8100</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Core i7</li>
+ <li>16GB RAM</li>
+ <li>some SSD and an HDD</li>
+ <li>Windows Vista Ultimate (64-bit)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>2014 Mac mini</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Core i5-4278U @ 2.6GHz</li>
+ <li>Intel Iris Graphics</li>
+ <li>8GB RAM</li>
+ <li>1TB HDD</li>
+ <li>VMware ESXi 6.7.0u3</li>
+ </ul>
+ <p class="description">
+ Was used as my VM host for a few years. Has now been superseded by an
+ actual 1U rack-mount server.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>1996 Fujitsu Milan</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Pentium</li>
+ <li>32MB RAM</li>
+ <li>1215MB HDD</li>
+ <li>Windows 98 SE</li>
+ </ul>
+ <p class="description">
+ Was originally a family members' laptop. Unfortunately the HDD side of the
+ HDD/FDD cable ripped while I was removing the drive to clean the computer.
+ Still scouring eBay for a replacement cable (or more likely, an entire
+ parts machine).
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>1999 Compaq Armada M300</td>
+ <td>
+ <span class="section-title">Quick Specs</span>
+ <ul>
+ <li>Intel Pentium III</li>
+ </ul>
+ <p class="description">
+ Nice little laptop. Mysteriously dead.
+ </p>
+ </td>
+ </tr>
+ </table>
+@stop
diff --git a/resources/views/errors/401.blade.php b/resources/views/errors/401.blade.php
index 5c586db..7c0d081 100644
--- a/resources/views/errors/401.blade.php
+++ b/resources/views/errors/401.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Unauthorized'))
-@section('code', '401')
-@section('message', __('Unauthorized'))
+<x-minimal-error>
+ <x-slot:code>401</x-slot:code>
+ <x-slot:message>Unauthorized</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/402.blade.php b/resources/views/errors/402.blade.php
index 3bc23ef..4048cba 100644
--- a/resources/views/errors/402.blade.php
+++ b/resources/views/errors/402.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Payment Required'))
-@section('code', '402')
-@section('message', __('Payment Required'))
+<x-minimal-error>
+ <x-slot:code>402</x-slot:code>
+ <x-slot:message>Payment Required</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php
index a5506f0..d661d00 100644
--- a/resources/views/errors/403.blade.php
+++ b/resources/views/errors/403.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Forbidden'))
-@section('code', '403')
-@section('message', __($exception->getMessage() ?: 'Forbidden'))
+<x-minimal-error>
+ <x-slot:code>403</x-slot:code>
+ <x-slot:message>{{__($exception->getMessage() ?: 'Forbidden')}}</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php
index ebd22b7..812ec99 100644
--- a/resources/views/errors/404.blade.php
+++ b/resources/views/errors/404.blade.php
@@ -1,27 +1,4 @@
-@extends('errors::minimal')
-@section('content')
-
-<h1>Error 404 | <strong>Page not found!</strong></h1>
-<hr align="left">
-<h2>The page <code class="addr">/{{ Request::path() }}/</code> doesn't exist! Did you mean...</h2>
-<ul>
- <li><a href="//www.diskfloppy.me/">diskfloppy.me</a></li>
- <li><a href="//git.diskfloppy.me/">git.diskfloppy.me</a></li>
- <li><a href="//weather.diskfloppy.me">weather.diskfloppy.me</a></li>
- <li><a href="//dl.diskfloppy.me/">dl.diskfloppy.me</a></li>
- <li><a href="https://status.diskfloppy.me">status.diskfloppy.me</a> (HTTPS Only)</li>
- <li><a href="gopher://diskfloppy.me">gopher://diskfloppy.me</a></li>
-</ul>
-<p>Still haven't found what you were looking for or believe this is a server error? Contact the <a href="mailto:webmaster@diskfloppy.me">webmaster</a>!</p>
-<br>
-<h4>Diagnostic Info</h4>
-<table><tr><td>
- <code>
- Server: &nbsp;{{ gethostname() }}<br>
- Your IP: {{ Request::ip() }}<br>
- Epoch: &nbsp;&nbsp;{{ now()->timestamp }}<br>
- Agent: &nbsp;&nbsp;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0 </code>
- </td></tr></table>
-<hr align="left">
-<p>&copy; floppydisk 2021-2024</p>
-@endsection
+<x-minimal-error>
+ <x-slot:code>404</x-slot:code>
+ <x-slot:message>Page not found!</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/418.blade.php b/resources/views/errors/418.blade.php
index 412ea92..7ced586 100644
--- a/resources/views/errors/418.blade.php
+++ b/resources/views/errors/418.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('I\'m a teapot'))
-@section('code', '418')
-@section('message', __('I\'m a teapot'))
+<x-minimal-error>
+ <x-slot:code>418</x-slot:code>
+ <x-slot:message>I'm a teapot</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php
index c09216e..7008bd8 100644
--- a/resources/views/errors/419.blade.php
+++ b/resources/views/errors/419.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Page Expired'))
-@section('code', '419')
-@section('message', __('Page Expired'))
+<x-minimal-error>
+ <x-slot:code>419</x-slot:code>
+ <x-slot:message>Page Expired</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php
index f01b07b..9ff195b 100644
--- a/resources/views/errors/429.blade.php
+++ b/resources/views/errors/429.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Too Many Requests'))
-@section('code', '429')
-@section('message', __('Too Many Requests'))
+<x-minimal-error>
+ <x-slot:code>429</x-slot:code>
+ <x-slot:message>Too Many Requests</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php
index d9e95d9..d2c28c5 100644
--- a/resources/views/errors/500.blade.php
+++ b/resources/views/errors/500.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Server Error'))
-@section('code', '500')
-@section('message', __('Server Error'))
+<x-minimal-error>
+ <x-slot:code>500</x-slot:code>
+ <x-slot:message>Server Error</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php
index c5a9dde..708c4d9 100644
--- a/resources/views/errors/503.blade.php
+++ b/resources/views/errors/503.blade.php
@@ -1,5 +1,4 @@
-@extends('errors::minimal')
-
-@section('title', __('Service Unavailable'))
-@section('code', '503')
-@section('message', __('Service Unavailable'))
+<x-minimal-error>
+ <x-slot:code>503</x-slot:code>
+ <x-slot:message>Service Unavailable</x-slot:message>
+</x-minimal-error>
diff --git a/resources/views/errors/generic-error.blade.php b/resources/views/errors/generic-error.blade.php
index 6f08ea5..0082093 100644
--- a/resources/views/errors/generic-error.blade.php
+++ b/resources/views/errors/generic-error.blade.php
@@ -1,9 +1,8 @@
-@extends('layouts.minimal')
-@section('title', 'Error 401: Unauthorized User!')
-@section('content')
+<x-minimal>
+ <x-slot:title>Error 401: Unauthorized User!</x-slot:title>
<h1>{{ $error }}</h1>
<hr>
@if(isset($description))
<p>{{ $description }}</p>
@endif
-@stop
+</x-minimal>
diff --git a/resources/views/errors/guestbook-ipban.blade.php b/resources/views/errors/guestbook-ipban.blade.php
index 386d22a..5072e35 100644
--- a/resources/views/errors/guestbook-ipban.blade.php
+++ b/resources/views/errors/guestbook-ipban.blade.php
@@ -1,6 +1,5 @@
-@extends('layouts.minimal')
-@section('title', 'Error 403: IP Blocked!')
-@section('content')
+<x-minimal>
+ <x-slot:title>Error 403: IP Blocked!</x-slot:title>
<h1>Error 403: IP Blocked!</h1>
<hr>
<p>Your IP has been banned from submitting to the guestbook.</p>
@@ -9,4 +8,4 @@
@endif
<br>
Click <a href="/guestbook">here</a> to go back to the guestbook.
-@stop
+</x-minimal>
diff --git a/resources/views/errors/guestbook-ratelimit.blade.php b/resources/views/errors/guestbook-ratelimit.blade.php
index 7fecd97..cb24d9e 100644
--- a/resources/views/errors/guestbook-ratelimit.blade.php
+++ b/resources/views/errors/guestbook-ratelimit.blade.php
@@ -1,10 +1,9 @@
-@extends('layouts.minimal')
-@section('title', 'Error 429: Overclocking Detected!')
-@section('content')
+<x-minimal>
+ <x-slot:title>Error 429: Overclocking Detected!</x-slot:title>
<h1>Error 429: Overclocking Detected!</h1>
<hr>
<p>Whoa there! Your submissions are going at warp speed.</p>
<p>Remember you can only submit an entry <u>once every hour</u>!</p>
<br>
Click <a href="/guestbook">here</a> to go back to the guestbook.
-@stop
+</x-minimal>
diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php
deleted file mode 100644
index 019c2cd..0000000
--- a/resources/views/errors/layout.blade.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- <title>@yield('title')</title>
-
- <!-- Styles -->
- <style>
- html, body {
- background-color: #fff;
- color: #636b6f;
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
- font-weight: 100;
- height: 100vh;
- margin: 0;
- }
-
- .full-height {
- height: 100vh;
- }
-
- .flex-center {
- align-items: center;
- display: flex;
- justify-content: center;
- }
-
- .position-ref {
- position: relative;
- }
-
- .content {
- text-align: center;
- }
-
- .title {
- font-size: 36px;
- padding: 20px;
- }
- </style>
- </head>
- <body>
- <div class="flex-center position-ref full-height">
- <div class="content">
- <div class="title">
- @yield('message')
- </div>
- </div>
- </div>
- </body>
-</html>
diff --git a/resources/views/errors/minimal.blade.php b/resources/views/errors/minimal.blade.php
index e15c833..4ae6830 100644
--- a/resources/views/errors/minimal.blade.php
+++ b/resources/views/errors/minimal.blade.php
@@ -1,21 +1,3 @@
-@extends('layouts.minimal')
-@section('content')
- <h1>Error @yield('code') | <strong>@yield('message')</strong></h1>
- <hr align="left">
- <p>Here, have a cat...</p>
- <img src="https://http.cat/@yield('code')" width="500"><br><br>
- <p>If you believe this is a server error, contact the <a href="mailto:webmaster@diskfloppy.me">webmaster</a></p>
- <br>
- <h4>Diagnostic Info</h4>
- <table><tr><td>
- <code>
- Server: &nbsp;{{ gethostname() }}<br>
- Your IP: {{ Request::ip() }}<br>
- Root: &nbsp;&nbsp;&nbsp;{!! url('') !!}<br>
- Path: &nbsp;&nbsp;&nbsp;/{{ Request::path() }}/<br>
- Epoch: &nbsp;&nbsp;{{ now()->timestamp }}<br>
- Agent: &nbsp;&nbsp;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0 </code>
- </td></tr></table>
- <hr align="left">
- <p>&copy; floppydisk 2021-2024</p>
-@endsection
+<x-minimal>
+
+</x-minimal>
diff --git a/resources/views/pages/guestbook.blade.php b/resources/views/guestbook.blade.php
index a2c39fb..bed4211 100644
--- a/resources/views/pages/guestbook.blade.php
+++ b/resources/views/guestbook.blade.php
@@ -1,27 +1,12 @@
-@extends('layouts.default')
-@section('title', 'Guestbook')
-@section('content')
- @php
- use UAParser\Parser;
- $parser = Parser::create();
- $db_alive = true;
- try {
- DB::connection()->getPdo();
- } catch (Exception $e) {
- $db_alive = false;
- }
- @endphp
- @if (!$db_alive)
- @include('components.errors.db-error')
- @else
- <br>
+<x-layout>
+ <x-slot:title>Guestbook</x-slot:title>
<table class="gb-entry-form-container" role="presentation">
<tr>
<td>
<form method="POST" action="/guestbook">
@csrf
<x-honeypot/>
- <table class="gb-entry-form" role="presentation">
+ <table class="form" role="presentation">
<tr>
<td>
<label for="name"><strong>Name:</strong></label>
@@ -66,13 +51,6 @@
<hr>
- @php
- $entries = DB::select('
- SELECT name, timestamp, message, agent
- FROM guestbook__entries
- ORDER BY id DESC
- ');
- @endphp
<h2>Entries <small>({{ count($entries) }} total)</small></h2>
@foreach ($entries as $entry)
@php
@@ -82,10 +60,10 @@
<tr>
<td>
Submitted by <strong>{{ $entry->name }}</strong>
- on <strong>{{ gmdate('Y-m-d', $entry->timestamp) }}</strong>
- at <strong>{{ gmdate('h:i:s A (e)', $entry->timestamp) }}</strong>
+ on <strong>{{ $entry->created_at->format('Y-m-d') }}</strong>
+ at <strong>{{ $entry->created_at->format('h:i:s A (e)') }}</strong>
<hr>
- {{ $entry->message }}
+ <span class="guestbook-message">{{ $entry->message }}</span>
<hr>
@if($entry->agent === "Agent Unavailable")
<address>Agent unavailable</address>
@@ -98,5 +76,4 @@
</table>
<br>
@endforeach
- @endif
-@stop
+</x-layout>
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
new file mode 100644
index 0000000..bd5b8d3
--- /dev/null
+++ b/resources/views/home.blade.php
@@ -0,0 +1,45 @@
+<x-layout>
+ <x-slot:title>Home</x-slot:title>
+ <p>Hi! This is my personal homepage on the <strong>W</strong>orld <strong>W</strong>ide <strong>W</strong>eb.</p>
+
+ <div class="info-section">
+ <h2>QuickFacts&trade;</h2>
+ <hr>
+ <ul>
+ <li>18 y/o, he/him, British</li>
+ <li>Theatre Technician, &quot;Web Developer&quot; and NixOS User</li>
+ <li>Loves ETC desks, prefers Generics to LEDs for some reason</li>
+ <li>Has a crippling Soundcraft addiction</li>
+ <li>Spends way too much time on his computer</li>
+ <li>Favorite games: <a href="https://steamcommunity.com/id/floppydisk05/recommended/420530/">OneShot</a>, Minecraft, Stardew Valley, N++ and Starbound</li>
+ <li><a href="http://wxqa.com/">CWOP</a> member</li>
+ </ul>
+ </div>
+ <div class="info-section">
+ <h2>Interests</h2>
+ <hr>
+ <ul>
+ <li><strong>Tech Theatre</strong> - Lighting, Stage Management, etc. (<a href="https://www.controlbooth.com/members/floppydisk.28673/">ControlBooth</a>)</li>
+ <li><strong>Programming</strong> - HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (<a href="https://github.com/floppydisk05">GitHub</a>)</li>
+ <li><strong>Photography</strong> - <a href="https://www.flickr.com/photos/floppydisk/">Flickr</a></li>
+ <li><strong>Gaming</strong> - <a href="https://steamcommunity.com/id/floppydisk05/">Steam Profile</a></li>
+ </ul>
+ </div>
+ <div class="info-section">
+ <h2>Things they never said</h2>
+ <hr>
+ <p>
+ <script type="text/javascript" src="{{ asset("/js/neverSaid.js") }}"></script>
+ <noscript>Oops! You need JavaScript enabled to view this content.</noscript>
+ </p>
+ </div>
+ <div class="info-section">
+ <h2>Contact &amp; social</h2>
+ <hr>
+ <p>
+ <strong>E-mail:</strong> <a href="mailto:contact@diskfloppy.me">contact@diskfloppy.me</a><br>
+ <strong>Mastodon:</strong> <a rel="me" href="https://c.im/@floppydisk">@floppydisk@c.im</a><br>
+ <strong>Matrix:</strong> <a href="https://matrix.to/#/@floppydisk:arcticfoxes.net">@floppydisk:arcticfoxes.net</a>
+ </p>
+ </div>
+</x-layout>
diff --git a/resources/views/includes/admin/header.blade.php b/resources/views/includes/admin/header.blade.php
deleted file mode 100644
index edb2fd7..0000000
--- a/resources/views/includes/admin/header.blade.php
+++ /dev/null
@@ -1,12 +0,0 @@
- <nav>
- <div>
- <a href="/">public home</a> |
- <a href="/admin">admin home</a> |
- <a href="/admin/guestbook">guestbook</a>
- @if (auth()->check())
- | ({{ auth()->user()->name }}) <a href="/logout">logout</a>
- @else
- | <a href="/login">login</a>
- @endif
- </div>
- </nav>
diff --git a/resources/views/includes/footer.blade.php b/resources/views/includes/footer.blade.php
index b606564..3494f6e 100644
--- a/resources/views/includes/footer.blade.php
+++ b/resources/views/includes/footer.blade.php
@@ -25,7 +25,7 @@
class="pixel" alt="Wiby - Search Engine for the Classic Web">
</a><br>
This site is best viewed at 1024x768 with 16-bit color or better<br>
- &copy; floppydisk 2021-{{ date('Y') }}, v{{ config('app.version') }}, <a
+ &copy; floppydisk 2021-{{ date('Y') }}, v{{ config('app.version') }}@if(env('DEVEL'))-dev, @else, @endif<a
href="https://github.com/floppydisk05/diskfloppy.me">Source</a>,
Served by {{ gethostname() }}<br>
<label for="scheme-selector">Color Scheme:</label>
diff --git a/resources/views/music.blade.php b/resources/views/music.blade.php
new file mode 100644
index 0000000..0fd5d84
--- /dev/null
+++ b/resources/views/music.blade.php
@@ -0,0 +1,6 @@
+<x-layout>
+ <x-slot:title>Music</x-slot:title>
+ <x-current-track :track="$current_track"/>
+ <hr>
+ <x-top-tracks :tracks="$top_tracks"/>
+</x-layout>
diff --git a/resources/views/pages/admin/guestbook-del-confirm.blade.php b/resources/views/pages/admin/guestbook-del-confirm.blade.php
deleted file mode 100644
index de920e0..0000000
--- a/resources/views/pages/admin/guestbook-del-confirm.blade.php
+++ /dev/null
@@ -1,33 +0,0 @@
-@extends('layouts.minimal')
-@section('title', 'Delete confirm')
-@section('content')
- <h1>Delete Confirmation</h1>
- <hr>
- <p>Are you sure you want to delete this entry?</p>
-
- <h3>Entry Details:</h3>
- <table class="gb-entry-details">
- <tr>
- <td><b>ID:</b></td>
- <td>{{ $entry->id }}</td>
- </tr>
- <tr>
- <td><b>Name:</b></td>
- <td>{{ $entry->name }}</td>
- </tr>
- <tr>
- <td><b>Date:</b></td>
- <td>{{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}</td>
- </tr>
- <tr>
- <td><b>Message:</b></td>
- <td>{{ $entry->message }}</td>
- </tr>
- </table>
-
- <form action="/admin/guestbook/delete" method="POST">
- @csrf
- <input type="hidden" name="id" value="{{ $entry->id }}">
- <button type="submit">Confirm Delete</button>
- </form>
-@stop
diff --git a/resources/views/pages/admin/guestbook.blade.php b/resources/views/pages/admin/guestbook.blade.php
deleted file mode 100644
index 85460cc..0000000
--- a/resources/views/pages/admin/guestbook.blade.php
+++ /dev/null
@@ -1,32 +0,0 @@
-@extends('layouts.default-admin')
-@section('title', 'Guestbook')
-@section('content')
- @php
- $entries = DB::select('
- SELECT id, name, timestamp, message, ip_address
- FROM guestbook__entries
- ORDER BY id DESC
- ');
- @endphp
- <h1>Entries <small>({{ count($entries) }} total)</small></h1>
- @foreach ($entries as $entry)
- <table class="gb-admin">
- <tr>
- <td>
- Name:&nbsp;{{ $entry->name }}<br>
- IP:&nbsp;&nbsp;&nbsp;{{ $entry->ip_address }}<br>
- Date:&nbsp;{{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}
- </td>
- <td class="gb-del">
- <a href="/admin/guestbook/delete?id={{ $entry->id }}">del</a>
- </td>
- </tr>
- <tr>
- <td class="gb-message">
- <br>
- {{ htmlspecialchars($entry->message) }}
- </td>
- </tr></table>
- @endforeach
-@stop
-
diff --git a/resources/views/pages/admin/index.blade.php b/resources/views/pages/admin/index.blade.php
deleted file mode 100644
index fd34313..0000000
--- a/resources/views/pages/admin/index.blade.php
+++ /dev/null
@@ -1,9 +0,0 @@
-@extends('layouts.default-admin')
-@section('title', 'Page Title')
-@section('description', 'Page description goes here')
-@php
- $user = auth()->user();
-@endphp
-@section('content')
- <p>You are logged in as {{ $user->name }} ({{ $user->email }})</p>
-@stop
diff --git a/resources/views/pages/bookmarks.blade.php b/resources/views/pages/bookmarks.blade.php
deleted file mode 100644
index 55cc801..0000000
--- a/resources/views/pages/bookmarks.blade.php
+++ /dev/null
@@ -1,52 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Bookmarks')
-@section('description', 'This is the personal homepage of floppydisk.')
-@section('content')
- @php
- $db_alive = true;
- try {
- DB::connection()->getPdo();
- } catch (Exception $e) {
- $db_alive = false;
- }
- @endphp
- @if (!$db_alive)
- @include('components.errors.db-error')
- @else
- @php
- $categories = DB::select('
- SELECT id, name
- FROM bookmark__categories
- ORDER BY priority ASC
- ');
- @endphp
-
- @foreach ($categories as $category)
- <table class="info-table" role="presentation">
-
- <caption>
- <h2>{{ $category->name }}</h2>
- <hr>
- </caption>
-
- @php
- $sites = DB::select(
- '
- SELECT name, url, description
- FROM bookmark__sites
- WHERE category_id = ? ORDER BY priority ASC
- ',
- [$category->id],
- );
- @endphp
- @foreach ($sites as $site)
- <tr>
- <td><a href="{{ $site->url }}">{{ $site->name }}</a>
- - {{ $site->description }}</td>
- </tr>
- @endforeach
- </table>
- <br>
- @endforeach
- @endif
-@stop
diff --git a/resources/views/pages/bot.blade.php b/resources/views/pages/bot.blade.php
deleted file mode 100644
index b9475fc..0000000
--- a/resources/views/pages/bot.blade.php
+++ /dev/null
@@ -1,7 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Discord Bot')
-@section('description', '')
-@section('content')
- <p>The diskfloppy.me Discord bot blah blah blah blah blah</p>
- <p>Maybe I'll finish this page later idk</p>
-@stop
diff --git a/resources/views/pages/computers.blade.php b/resources/views/pages/computers.blade.php
deleted file mode 100644
index a7cec24..0000000
--- a/resources/views/pages/computers.blade.php
+++ /dev/null
@@ -1,442 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Computers')
-@section('description', 'Computers I own or have owned.')
-@section('content')
- <table class="computers">
- <tr>
- <th>PICTURES</th>
- <th>SPECS &amp; DESCRIPTION</th>
- </tr>
- <tr>
- <td>2023 MacBook Pro 14"</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Apple M3 Pro</li>
- <li>18GB RAM</li>
- <li>500GB SSD</li>
- <li>macOS Sonoma</li>
- </ul>
- <p class="description">WHAT</p>
- </td>
- </tr>
- <tr>
- <td>2018 MacBook Pro 13"</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel i5-8259U @ 2.3GHz</li>
- <li>Intel Iris Plus Graphics 655</li>
- <li>8GB RAM</li>
- <li>250GB SSD</li>
- <li>macOS Sonoma</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>2012 Lenovo ThinkPad T430</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Core i7</li>
- <li>16GB RAM</li>
- <li>Windows 7 Professional</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>2005 IBM ThinkPad X41T</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Pentium M @ 1.6GHz</li>
- <li>Mobile Intel Express Chipset Family (128MB)</li>
- <li>1.5GB RAM</li>
- <li>40GB HDD</li>
- <li>Windows XP Tablet PC Edition</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>1999 Dell OptiPlex GX1</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Pentium II (Deschutes) @ 400MHz</li>
- <li>ATI 3D Rage Pro (4MB)</li>
- <li>639MB</li>
- <li>40GB HDD</li>
- <li>MS-DOS 6.22 &amp; WFW 3.10</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>2003 IBM ThinkPad T40</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Pentium M @ 1.3GHz</li>
- <li>ATI Mobility Radeon 7500 (32MB)</li>
- <li>1GB RAM</li>
- <li>30GB HDD</li>
- <li>Windows 2000 Professional</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>2010 HP Compaq Elite 8100</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Core i7</li>
- <li>16GB RAM</li>
- <li>some SSD and an HDD</li>
- <li>Windows Vista Ultimate (64-bit)</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>2014 Mac mini</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Core i5-4278U @ 2.6GHz</li>
- <li>Intel Iris Graphics</li>
- <li>8GB RAM</li>
- <li>1TB HDD</li>
- <li>VMware ESXi 6.7.0u3</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>1996 Fujitsu Milan</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Pentium</li>
- <li>32MB RAM</li>
- <li>1215MB HDD</li>
- <li>Windows 98 SE</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>1999 Compaq Armada M300</td>
- <td>
- <section-title>Quick Specs</section-title>
- <ul>
- <li>Intel Pentium III</li>
- </ul>
- </td>
- </tr>
- </table>
- <!--<table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Custom Build</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">NixOS 22.11 / Windows 10 Pro</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel i7-6700K (8-core) @ 4.0GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">NVidia GTX 1060 (3GB)</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">64GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK0:</td>
- <td class="spec">SanDisk SSD Plus (120GB, Win10)</td>
- </tr>
- <tr>
- <td class="spec-title">DISK1:</td>
- <td class="spec">Crucial CT500MX500SSD1 (500GB, NixOS)</td>
- </tr>
- <tr>
- <td class="spec-title">DISK2:</td>
- <td class="spec">WDC WD20EZEAZ-00GGJB0 (2TB, Data)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>MacBook Pro (2018)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">macOS 12.5.1</td>
- </tr>
- <tr>
- <td class="spec-title">Display:</td>
- <td class="spec">2560x1600 (Retina)</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel i5-8259U (8-core) @ 2.3GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">Intel Iris Plus Graphics 655</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">8GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">Apple SSD AP0256M (250GB)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Lenovo ThinkPad T430 (2012)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">NixOS 22.11 / Windows 7 Ultimate</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel i7-3520M (4-core) @ 3.6GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">Intel 3rd Gen Core processor Graphics Controllertd>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">16GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK0:</td>
- <td class="spec">Crucial CT500MX500SSD1 (500GB, NixOS)</td>
- </tr>
- <tr>
- <td class="spec-title">DISK1:</td>
- <td class="spec">Crucial CT250MX500SSD1 (250GB, Win7)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>IBM ThinkPad X41 (2005)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">Windows XP Tablet PC Edition (2005, SP3)</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel Pentium M (single-core) @ 1.6GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">Mobile Intel 915GM/GMS 910GML Express Chipset Family (128MB)</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">1.5GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">Hitachi HTC426040G9AT00 (40GB)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Dell OptiPlex GX1 (400L+, 1999)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">Windows 3.10 for Workgroups (DOS 6.22)</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel Pentium II (Deschutes) @ 400MHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">ATI 3D Rage Pro (4MB)</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">639MB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">Unknown</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>IBM ThinkPad T40 (2003)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">Windows XP Pro</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel Pentium M (single-core) @ 1.3GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">ATI Mobility Radeon 7500 (32MB)</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">1GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">Fujitsu MHS2030AT (30GB)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>HP Compaq Elite 8100 CMT</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">Windows Vista 64-bit</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel Core i7</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec"></td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">16GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK0:</td>
- <td class="spec">SanDisk SSD Plus (120GB, Win10)</td>
- </tr>
- <tr>
- <td class="spec-title">DISK1:</td>
- <td class="spec">Crucial CT500MX500SSD1 (500GB, NixOS)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Mac mini (2014)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">VMware ESXi 6.7.0u3</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel i5-4278U (4-core) @ 2.6GHz</td>
- </tr>
- <tr>
- <td class="spec-title">GPU:</td>
- <td class="spec">Intel Iris Graphics</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">8GB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">Apple HDD HTS541 (1TB)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Fujitsu Milan (1996)</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec-title">OS:</td>
- <td class="spec">Windows 98 SE</td>
- </tr>
- <tr>
- <td class="spec-title">CPU:</td>
- <td class="spec">Intel Pentium</td>
- </tr>
- <tr>
- <td class="spec-title">Memory:</td>
- <td class="spec">32MB</td>
- </tr>
- <tr>
- <td class="spec-title">DISK:</td>
- <td class="spec">IBM DPRA-21215 (1215MB)</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>-->
- <!--<table class="computer" role="presentation">
- <tr>
- <td colspan="2"><h2>Compaq Armada M300</h2><hr></td>
- </tr>
- <tr>
- <td>
- <table class="computer-specs">
- <tr>
- <td class="spec">TBD</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>-->
-@stop
diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php
deleted file mode 100644
index 01831d6..0000000
--- a/resources/views/pages/home.blade.php
+++ /dev/null
@@ -1,88 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Home')
-@section('description', 'This is the personal homepage of floppydisk.')
-@section('content')
-
- <p>Hi! This is my personal homepage on the <strong>W</strong>orld <strong>W</strong>ide <strong>W</strong>eb.</p>
-
- <table class="info-table" role="presentation">
- <caption>
- <h2>QuickFacts&trade;</h2>
- <hr>
- </caption>
- <tr>
- <td>&#9670; 18 y/o, he/him, British</td>
- </tr>
- <tr>
- <td>&#9670; Theatre Technician, &quot;Web Developer&quot; and NixOS User</td>
- </tr>
- <tr>
- <td>&#9670; Loves ETC desks, prefers Generics to LEDs for some reason</td>
- </tr>
- <tr>
- <td>&#9670; Spends way too much time on his computer</td>
- </tr>
- <tr>
- <td>&#9670; Favorite games: <a href="https://steamcommunity.com/id/floppydisk05/recommended/420530/">OneShot</a>, Minecraft, Stardew Valley, N++ and Starbound</td>
- </tr>
- <tr>
- <td>&#9670; <a href="http://wxqa.com/">CWOP</a> member</td>
- </tr>
- </table>
- <br>
-
- <table class="info-table" role="presentation">
- <caption>
- <h2>Interests</h2>
- <hr>
- </caption>
- <tr>
- <td>&#9670; <b>Tech Theatre</b></td>
- <td>- Lighting, Stage Management, etc. (<a href="https://www.controlbooth.com/members/floppydisk.28673/">ControlBooth</a>)</td>
- </tr>
- <tr>
- <td>&#9670; <b>Programming</b></td>
- <td>- HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (<a href="https://github.com/floppydisk05">GitHub</a>)</td>
- </tr>
- <tr>
- <td>&#9670; <b>Photography</b></td>
- <td>- <a href="https://www.flickr.com/photos/floppydisk/">Flickr</a></td>
- </tr>
- <tr>
- <td>&#9670; <b>Gaming</b></td>
- <td>- <a href="https://steamcommunity.com/id/floppydisk05/">Steam Profile</a></td>
- </tr>
- </table>
- <br>
-
- <table class="info-table never-said" role="presentation">
- <caption>
- <h2>Things they never said</h2>
- <hr>
- </caption>
- <tr>
- <script type="text/javascript" src="/js/neverSaid.js"></script>
- <noscript><td>Oops! You need JavaScript enabled to view this content.</td></noscript>
- </tr>
- </table>
- <br>
-
- <table class="info-table" role="presentation">
- <caption>
- <h2>Contact &amp; social</h2>
- <hr>
- </caption>
- <tr>
- <td><strong>E-mail:</strong></td>
- <td><a href="mailto:contact@diskfloppy.me">contact@diskfloppy.me</a></td>
- </tr>
- <tr>
- <td><strong>Mastodon:</strong></td>
- <td><a rel="me" href="https://c.im/@floppydisk">@floppydisk@c.im</a></td>
- </tr>
- <tr>
- <td><strong>Matrix:</strong></td>
- <td><a href="https://matrix.to/#/@floppydisk:arcticfoxes.net">@floppydisk:arcticfoxes.net</a></td>
- </tr>
- </table>
-@stop
diff --git a/resources/views/pages/music.blade.php b/resources/views/pages/music.blade.php
deleted file mode 100644
index dba0750..0000000
--- a/resources/views/pages/music.blade.php
+++ /dev/null
@@ -1,66 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Music')
-@section('description', '')
-@section('content')
- @php
-
- $cfg = app('config')->get('services')['lastfm'];
- $api_root = app('config')->get('app')['api_root'];
-
- $api_alive = true;
-
- try {
- $data = file_get_contents($api_root.'/lastfm/current');
- } catch (Exception $e) {
- $api_alive = false;
- }
- @endphp
- @if (!$api_alive)
- @include('components.errors.api-error')
- @else
-
- @php
- $current_track = json_decode(file_get_contents($api_root . '/lastfm/current'));
- $top_tracks = json_decode(file_get_contents($api_root . '/lastfm/top'));
- $count = 0;
- @endphp
- <table class="info-table" role="presentation" width="100%">
- <tr>
- <td colspan="4">
- <h2>Last/Current Track:</h2>
- </td>
- </tr>
- <tr>
- <td colspan="4">
- <a href="{{ $current_track->url }}">{{ $current_track->title }} • {{ $current_track->artist }}</a><br>
- </td>
- </tr>
- </table>
- <hr>
- <table class="music-top10">
- <tr>
- <td colspan="4">
- <h2 style="margin-bottom: 5px">Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)</h2>
- </td>
- </tr>
- <tr>
- <td style="text-align: right"><b>#</b></td>
- <td><b>Track</b></td>
- <td><b>Artist</b></td>
- <td><b>Plays</b></td>
- </tr>
- @foreach ($top_tracks as $track)
- @php $count++ @endphp
- @if ($count >= $cfg['toptracks']+1)
- @break
- @endif
- <tr>
- <td style="text-align: right">{{ $count }}</td>
- <td style="white-space: nowrap; text-overflow:ellipsis; overflow: hidden; max-width:1px;" width="50%"><a href="{{ $track->url }}">{{ $track->title }}</a></td>
- <td style="white-space: nowrap; text-overflow:ellipsis; overflow: hidden; max-width:1px;" width="50%">{{ $track->artist }}</td>
- <td>{{ $track->playcount }}</td>
- </tr>
- @endforeach
- </table>
- @endif
-@stop
diff --git a/resources/views/pages/projects.blade.php b/resources/views/pages/projects.blade.php
deleted file mode 100644
index aad454b..0000000
--- a/resources/views/pages/projects.blade.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php $categories = app('config')->get('projects'); ?>
-@extends('layouts.default')
-@section('title', 'Projects')
-@section('description', 'My projects')
-@section('content')
- @foreach ($categories as $category)
- <h2>{{ $category['name']}}</h2>
- @foreach ($category['projects'] as $project)
- <div>
- <a href="{{ $project['url'] }}">{{ $project['name'] }}</a> - {{ $project['description'] }}<br>
- <b>Languages:</b> {{ implode(", ", $project['languages']) }}
- </div>
- <br>
- @endforeach
-@endforeach
-@stop
diff --git a/resources/views/pages/template.blade.php b/resources/views/pages/template.blade.php
deleted file mode 100644
index 18fe585..0000000
--- a/resources/views/pages/template.blade.php
+++ /dev/null
@@ -1,6 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Page Title')
-@section('description', 'Page description goes here')
-@section('content')
-<p>page content</p>
-@stop
diff --git a/resources/views/pages/weather.blade.php b/resources/views/pages/weather.blade.php
deleted file mode 100644
index a759534..0000000
--- a/resources/views/pages/weather.blade.php
+++ /dev/null
@@ -1,61 +0,0 @@
-@extends('layouts.default')
-@section('title', 'Weather')
-@section('description', 'Data from my weather station')
-@section('content')
-@php
-$api_root = app('config')->get('app')['api_root'];
-
-function degreesToCompassDirection($degrees) {
- $cardinalDirections = [
- 'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
- 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'
- ];
- return $cardinalDirections[round($degrees*16/360)];
-}
-
-$api_alive = true;
-
-try {
- $data = file_get_contents($api_root.'/weather');
-} catch (Exception $e) {
- $api_alive = false;
-}
-@endphp
-@if (!$api_alive)
- @include('components.errors.api-error')
-@else
- @php
- $data = json_decode(file_get_contents($api_root.'/weather'));
- $updated = gmdate('H:i Y-m-d', $data->updated);
- $data = $data->current;
- @endphp
-<table class="info-table" role="presentation">
- <caption>
- <h2>Local Weather</h2>
- <hr>
- </caption>
- <tr>
- <td><b>Wind Speed:</b></td>
- <td>{{ $data->wind->speed }} mph</td>
- </tr>
- <tr>
- <td><b>Wind Direction:</b></td>
- <td>{{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}</td>
- </tr>
- <tr>
- <td><b>Temperature:</b></td>
- <td>{{ $data->temperature }}°C</td>
- </tr>
- <tr>
- <td><b>Rain Rate:</b></td>
- <td>{{ $data->rain_rate }} mm/hr</td>
- </tr>
- <tr>
- <td><b>Humidity:</b></td>
- <td>{{ $data->humidity }}%</td>
- </tr>
-</table>
-<br>
-<small><i>(Last Update: {{ $updated }})</i></small>
-@endif
-@stop