- Top 10 Tracks (Last 30 days):
-@else
-
-
- Top 10 Tracks (Last 30 days):
-
-@endif
-
- #
- Track
- Artist
- Plays
-
- @php($count = 0)
- @foreach ($tracks as $track)
- @php($count++)
-
- @endforeach
-
diff --git a/resources/views/components/lastfm-track.blade.php b/resources/views/components/lastfm-track.blade.php
deleted file mode 100644
index f61d41e..0000000
--- a/resources/views/components/lastfm-track.blade.php
+++ /dev/null
@@ -1,6 +0,0 @@
-
- {{ $count }}
- {{ $track["title"] }}
- {{ $track["artist"] }}
- {{ $track["plays"] }}
-
diff --git a/resources/views/components/lastfm.blade.php b/resources/views/components/lastfm.blade.php
new file mode 100644
index 0000000..83312e1
--- /dev/null
+++ b/resources/views/components/lastfm.blade.php
@@ -0,0 +1,21 @@
+@php
+
+$cfg = app('config')->get('services')['lastfm'];
+$api_root = app('config')->get('app')['api_root'];
+
+$current_track = json_decode(file_get_contents($api_root.'/lastfm/current'));
+$toptracks = json_decode(file_get_contents($api_root.'/lastfm/top'));
+$count = 0;
+@endphp
+
+
+ Last/Current Track: {{ $current_track->name }} • {{ $current_track->artist }}
+ Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)
+@foreach ($toptracks as $track)
+ @if ($count >= $cfg['toptracks'])
+ @break
+ @endif
+ {{ str_pad($count+1, 2, '0', STR_PAD_LEFT) }}] {{ $track->name }} • {{ $track->artist }}
+ ({{ $track->plays }} plays)
+@php $count++ @endphp
+@endforeach
diff --git a/resources/views/components/layout-err.blade.php b/resources/views/components/layout-err.blade.php
deleted file mode 100644
index 5c75d0e..0000000
--- a/resources/views/components/layout-err.blade.php
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- {{ $title ?? '' }}
-
-
-
-
- Error {{ $code }} | {{ $message }}
-
- Here, have a cat...
-
- If you believe this is a server error, contact the webmaster
-
- Diagnostic Info
-
-
- Server: {{ gethostname() }}
- Your IP: {{ Request::ip() }}
- Root: {!! url('') !!}
- Path: @if(Request::path() == "/")/@else/{{ Request::path() }}/@endif
- Epoch: {{ now()->timestamp }}
- Agent: {{ request()->userAgent() }}
-
-
- © RoscoeDaWah 2021-2024
-
-
diff --git a/resources/views/components/layout-legacy.blade.php b/resources/views/components/layout-legacy.blade.php
deleted file mode 100644
index 56379f9..0000000
--- a/resources/views/components/layout-legacy.blade.php
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
- wah! (dot moe) - {{ $title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- wah! (dot moe)
- "i mean it looks alright, but then you realise its all tables" ~ alice
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $slot }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- © RoscoeDaWah 2021-2025
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/views/components/layout-min.blade.php b/resources/views/components/layout-min.blade.php
deleted file mode 100644
index 37e6e03..0000000
--- a/resources/views/components/layout-min.blade.php
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{ $title ?? 'Unknown' }}
-
-
-{{ $slot }}
-
-
diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php
deleted file mode 100644
index a9a1728..0000000
--- a/resources/views/components/layout.blade.php
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
- wah! (dot moe)
-
-
-
- @if ($isChristmas)@endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/views/components/navigation.blade.php b/resources/views/components/navigation.blade.php
deleted file mode 100644
index acf5406..0000000
--- a/resources/views/components/navigation.blade.php
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Pages:
- home |
- @if(!isLegacy())
- wah-ki |
- @endif
- git |
- files |
- gopher |
- bookmarks |
- guestbook |
- music |
- pandamonium
-
diff --git a/resources/views/components/wah.blade.php b/resources/views/components/wah.blade.php
deleted file mode 100644
index 105c9b7..0000000
--- a/resources/views/components/wah.blade.php
+++ /dev/null
@@ -1,12 +0,0 @@
-@if(!isLegacy())
-
-
Random Wah!
- @if ($wah !== "")
-
-
Image "stolen" from tinyfox.dev
- @else
-
-
Unable to retrieve image
- @endif
-
-@endif
diff --git a/resources/views/components/weather.blade.php b/resources/views/components/weather.blade.php
new file mode 100644
index 0000000..29f925d
--- /dev/null
+++ b/resources/views/components/weather.blade.php
@@ -0,0 +1,22 @@
+@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)];
+}
+
+$data = json_decode(file_get_contents($api_root.'/weather'));
+$updated = gmdate('H:i Y-m-d', $data->updated);
+$data = $data->current;
+@endphp
+
+Local Weather (Last Update: {{ $updated }})
+ Wind Speed: {{ $data->wind->speed }} mph
+ Wind Direction: {{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}
+ Temperature: {{ $data->temperature }}°C
+ Rain Rate: {{ $data->rain_rate }} mm/hr
+ Humidity: {{ $data->humidity }}%
diff --git a/resources/views/errors/401.blade.php b/resources/views/errors/401.blade.php
deleted file mode 100644
index f3dce11..0000000
--- a/resources/views/errors/401.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 401
- Unauthorized
-
diff --git a/resources/views/errors/402.blade.php b/resources/views/errors/402.blade.php
deleted file mode 100644
index 06f6d5e..0000000
--- a/resources/views/errors/402.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 402
- Payment Required
-
diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php
deleted file mode 100644
index 22b14ad..0000000
--- a/resources/views/errors/403.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 403
- {{__($exception->getMessage() ?: 'Forbidden')}}
-
diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php
deleted file mode 100644
index a3cd44c..0000000
--- a/resources/views/errors/404.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 404
- Page not found!
-
diff --git a/resources/views/errors/418.blade.php b/resources/views/errors/418.blade.php
deleted file mode 100644
index f69b9a2..0000000
--- a/resources/views/errors/418.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 418
- I'm a teapot
-
diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php
deleted file mode 100644
index 5d5781e..0000000
--- a/resources/views/errors/419.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 419
- Page Expired
-
diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php
deleted file mode 100644
index a3a3e51..0000000
--- a/resources/views/errors/429.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 429
- Too Many Requests
-
diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php
deleted file mode 100644
index f578dca..0000000
--- a/resources/views/errors/500.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 500
- Server Error
-
diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php
deleted file mode 100644
index 61587ac..0000000
--- a/resources/views/errors/503.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- 503
- Service Unavailable
-
diff --git a/resources/views/errors/generic-error.blade.php b/resources/views/errors/generic-error.blade.php
index cbdca62..6f08ea5 100644
--- a/resources/views/errors/generic-error.blade.php
+++ b/resources/views/errors/generic-error.blade.php
@@ -1,8 +1,9 @@
-
- Error 401: Unauthorized User!
+@extends('layouts.minimal')
+@section('title', 'Error 401: Unauthorized User!')
+@section('content')
{{ $error }}
@if(isset($description))
{{ $description }}
@endif
-
+@stop
diff --git a/resources/views/errors/guestbook-invalid.blade.php b/resources/views/errors/guestbook-invalid.blade.php
deleted file mode 100644
index 6c72bcf..0000000
--- a/resources/views/errors/guestbook-invalid.blade.php
+++ /dev/null
@@ -1,12 +0,0 @@
-
- Error dsdf!
-
-
-
Error 400: Invalid message!
-
-
Whoa there! Your form submission seems to contain a URL (or one of the fields was left blank)!
-
- Click
here to go back to the guestbook.
-
-
-
diff --git a/resources/views/errors/guestbook-ipban.blade.php b/resources/views/errors/guestbook-ipban.blade.php
index 319aff0..386d22a 100644
--- a/resources/views/errors/guestbook-ipban.blade.php
+++ b/resources/views/errors/guestbook-ipban.blade.php
@@ -1,5 +1,6 @@
-
- Error 403: IP Blocked!
+@extends('layouts.minimal')
+@section('title', 'Error 403: IP Blocked!')
+@section('content')
Error 403: IP Blocked!
Your IP has been banned from submitting to the guestbook.
@@ -8,4 +9,4 @@
@endif
Click here to go back to the guestbook.
-
+@stop
diff --git a/resources/views/errors/guestbook-ratelimit.blade.php b/resources/views/errors/guestbook-ratelimit.blade.php
index adfa5a9..7fecd97 100644
--- a/resources/views/errors/guestbook-ratelimit.blade.php
+++ b/resources/views/errors/guestbook-ratelimit.blade.php
@@ -1,13 +1,10 @@
-
- Error 429: Overclocking Detected!
-
-
-
Error 429: Overclocking Detected!
-
-
Whoa there! Your submissions are going at warp speed.
-
Remember you can only submit an entry once every hour !
-
- Click
here to go back to the guestbook.
-
-
-
+@extends('layouts.minimal')
+@section('title', 'Error 429: Overclocking Detected!')
+@section('content')
+ Error 429: Overclocking Detected!
+
+ Whoa there! Your submissions are going at warp speed.
+ Remember you can only submit an entry once every hour !
+
+ Click here to go back to the guestbook.
+@stop
diff --git a/resources/views/errors/no-auth.blade.php b/resources/views/errors/no-auth.blade.php
new file mode 100644
index 0000000..1d99498
--- /dev/null
+++ b/resources/views/errors/no-auth.blade.php
@@ -0,0 +1,8 @@
+@extends('layouts.minimal')
+@section('title', 'Error 401: Unauthorized User!')
+@section('content')
+ Error 401: Unauthorized User!
+
+ Woah there! Only authorized users can access this page. Please log in to proceed.
+ Ended up here on accident? Click here to return to the homepage!
+@stop
diff --git a/resources/views/guestbook.blade.php b/resources/views/guestbook.blade.php
deleted file mode 100644
index fb73da2..0000000
--- a/resources/views/guestbook.blade.php
+++ /dev/null
@@ -1,127 +0,0 @@
-
- Guestbook
-
-
-
-
-
-
- A few things to note:
-
- You can submit an entry once every hour .
- Your IP address is logged but not publicly displayed.
- Any entries that appear to be spam will be removed.
- @if (isLegacy())
- This form is broken in super-old browsers.
- Entries submitted on this site are flagged for manual review.
- @endif
-
-
-
-
-
- @if (isLegacy())
- Entries ({{ count($entries) }} total)
-
- @foreach ($entries as $entry)
- @php
- $user_agent = $parser->parse($entry->agent);
- @endphp
-
-
-
-
- Submitted by {{ $entry->name }}
- on {{ $entry->created_at->format('Y-m-d') }}
- at {{ $entry->created_at->format('h:i:s A (e)') }}
-
- {{ $entry->message }}
-
- @if($entry->agent === "Agent Unavailable")
- Agent unavailable
- @else
- @if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other")
- Posted using {{ $entry->agent }}
- @else
- Posted using {{ $user_agent->ua->toString() }}
- on {{ $user_agent->os->toString() }}
- @endif
- @endif
-
-
-
-
- @endforeach
-
-
- @else
-
- Entries ({{ count($entries) }} total)
- @foreach ($entries as $entry)
- @php
- $user_agent = $parser->parse($entry->agent);
- @endphp
-
- Submitted by
{{ $entry->name }}
- on
{{ $entry->created_at->format('Y-m-d') }}
- at
{{ $entry->created_at->format('h:i:s A (e)') }}
-
-
{{ $entry->message }}
-
- @if($entry->agent === "Agent Unavailable")
-
Agent unavailable
- @else
- @if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other")
-
Posted using {{ $entry->agent }}
- @else
-
Posted using {{ $user_agent->ua->toString() }}
- on {{ $user_agent->os->toString() }}
- @endif
- @endif
-
-
- @endforeach
- @endif
-
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
deleted file mode 100644
index 91184e5..0000000
--- a/resources/views/home.blade.php
+++ /dev/null
@@ -1,33 +0,0 @@
-
- Home
-
-
- Hi! This is my personal homepage on the W orld W ide
- W eb.
-
- @if(!isLegacy())
-
- @endif
- Some quick facts about me:
-
- {{ $age }} y/o, he/him, British
- Theatre Technician and "Web Developer"
- Loves ETC desks, prefers Generics to LEDs for some reason
- Spends way too much time on his computer
- Favorite games: OneShot ,
- Minecraft, Stardew Valley, N++ and Starbound
- CWOP member
-
- @if(!isLegacy())
-
- @endif
- Interests:
-
- Tech Theatre - Lighting, Stage Management, etc.
- Programming - HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (GitHub )
- Photography - Flickr
- Gaming - Steam Profile
-
-
-
diff --git a/resources/views/includes/admin/header.blade.php b/resources/views/includes/admin/header.blade.php
new file mode 100644
index 0000000..edb2fd7
--- /dev/null
+++ b/resources/views/includes/admin/header.blade.php
@@ -0,0 +1,12 @@
+
+
+
diff --git a/resources/views/includes/footer.blade.php b/resources/views/includes/footer.blade.php
new file mode 100644
index 0000000..c19bd71
--- /dev/null
+++ b/resources/views/includes/footer.blade.php
@@ -0,0 +1,30 @@
+
+
diff --git a/resources/views/includes/head-hljs.blade.php b/resources/views/includes/head-hljs.blade.php
new file mode 100644
index 0000000..dec0126
--- /dev/null
+++ b/resources/views/includes/head-hljs.blade.php
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+ @yield('title') - diskfloppy.me
+
+
+
diff --git a/resources/views/includes/head.blade.php b/resources/views/includes/head.blade.php
new file mode 100644
index 0000000..1191836
--- /dev/null
+++ b/resources/views/includes/head.blade.php
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ @yield('title') - diskfloppy.me
+
+
+
+
diff --git a/resources/views/includes/header.blade.php b/resources/views/includes/header.blade.php
new file mode 100644
index 0000000..9a020d2
--- /dev/null
+++ b/resources/views/includes/header.blade.php
@@ -0,0 +1,18 @@
+
+
+
diskfloppy.me | @yield('title')
+
+
+
+
+
+
+
+
+
+ @if (auth()->check())
+
admin
+ ({{ auth()->user()->name }})
logout
+ @endif
+
+
diff --git a/resources/views/layouts/default-admin.blade.php b/resources/views/layouts/default-admin.blade.php
new file mode 100644
index 0000000..5a16524
--- /dev/null
+++ b/resources/views/layouts/default-admin.blade.php
@@ -0,0 +1,23 @@
+
+
+
+ @include('includes.head')
+
+
+
+
+
+
+
+
+@yield('content')
+
+
+
+
+
+
diff --git a/resources/views/layouts/default-hljs.blade.php b/resources/views/layouts/default-hljs.blade.php
new file mode 100644
index 0000000..dab8a11
--- /dev/null
+++ b/resources/views/layouts/default-hljs.blade.php
@@ -0,0 +1,23 @@
+
+
+
+ @include('includes.head-hljs')
+
+
+
+
+
+
+
+
+@yield('content')
+
+
+
+
+
+
diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php
new file mode 100644
index 0000000..be3ae92
--- /dev/null
+++ b/resources/views/layouts/default.blade.php
@@ -0,0 +1,23 @@
+
+
+
+ @include('includes.head')
+
+
+
+
+
+
+
+
+@yield('content')
+
+
+
+
+
+
diff --git a/resources/views/layouts/minimal.blade.php b/resources/views/layouts/minimal.blade.php
new file mode 100644
index 0000000..5cef094
--- /dev/null
+++ b/resources/views/layouts/minimal.blade.php
@@ -0,0 +1,11 @@
+
+
+
+ @yield('title')
+
+
+
+
+@yield('content')
+
+
diff --git a/resources/views/music.blade.php b/resources/views/music.blade.php
deleted file mode 100644
index d0793cd..0000000
--- a/resources/views/music.blade.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
- Music
-
-
-
diff --git a/resources/views/pages/admin/guestbook-del-confirm.blade.php b/resources/views/pages/admin/guestbook-del-confirm.blade.php
new file mode 100644
index 0000000..de920e0
--- /dev/null
+++ b/resources/views/pages/admin/guestbook-del-confirm.blade.php
@@ -0,0 +1,33 @@
+@extends('layouts.minimal')
+@section('title', 'Delete confirm')
+@section('content')
+ Delete Confirmation
+
+ Are you sure you want to delete this entry?
+
+ Entry Details:
+
+
+ ID:
+ {{ $entry->id }}
+
+
+ Name:
+ {{ $entry->name }}
+
+
+ Date:
+ {{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}
+
+
+ Message:
+ {{ $entry->message }}
+
+
+
+
+ @csrf
+
+ Confirm Delete
+
+@stop
diff --git a/resources/views/pages/admin/guestbook.blade.php b/resources/views/pages/admin/guestbook.blade.php
new file mode 100644
index 0000000..85460cc
--- /dev/null
+++ b/resources/views/pages/admin/guestbook.blade.php
@@ -0,0 +1,32 @@
+@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
+ Entries ({{ count($entries) }} total)
+ @foreach ($entries as $entry)
+
+
+
+ Name: {{ $entry->name }}
+ IP: {{ $entry->ip_address }}
+ Date: {{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}
+
+
+ del
+
+
+
+
+
+ {{ htmlspecialchars($entry->message) }}
+
+
+ @endforeach
+@stop
+
diff --git a/resources/views/pages/admin/index.blade.php b/resources/views/pages/admin/index.blade.php
new file mode 100644
index 0000000..fd34313
--- /dev/null
+++ b/resources/views/pages/admin/index.blade.php
@@ -0,0 +1,9 @@
+@extends('layouts.default-admin')
+@section('title', 'Page Title')
+@section('description', 'Page description goes here')
+@php
+ $user = auth()->user();
+@endphp
+@section('content')
+ You are logged in as {{ $user->name }} ({{ $user->email }})
+@stop
diff --git a/resources/views/pages/bookmarks.blade.php b/resources/views/pages/bookmarks.blade.php
new file mode 100644
index 0000000..54d464d
--- /dev/null
+++ b/resources/views/pages/bookmarks.blade.php
@@ -0,0 +1,40 @@
+@extends('layouts.default')
+@section('title', 'Bookmarks')
+@section('description', 'This is the personal homepage of floppydisk.')
+@section('content')
+ @php
+ $categories = DB::select('
+ SELECT id, name
+ FROM bookmark__categories
+ ORDER BY priority ASC
+ ');
+ @endphp
+
+ @foreach ($categories as $category)
+
+
+
+ {{ $category->name }}
+
+
+
+ @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)
+
+ {{ $site->name }}
+ - {{ $site->description }}
+
+ @endforeach
+
+
+ @endforeach
+@stop
diff --git a/resources/views/pages/bot.blade.php b/resources/views/pages/bot.blade.php
new file mode 100644
index 0000000..b9475fc
--- /dev/null
+++ b/resources/views/pages/bot.blade.php
@@ -0,0 +1,7 @@
+@extends('layouts.default')
+@section('title', 'Discord Bot')
+@section('description', '')
+@section('content')
+ The diskfloppy.me Discord bot blah blah blah blah blah
+ Maybe I'll finish this page later idk
+@stop
diff --git a/resources/views/pages/calculators.blade.php b/resources/views/pages/calculators.blade.php
new file mode 100644
index 0000000..5d629ed
--- /dev/null
+++ b/resources/views/pages/calculators.blade.php
@@ -0,0 +1,110 @@
+@extends('layouts.default')
+@section('title', 'Calculators')
+@section('description', 'C a l c u l a t o r s.')
+@section('content')
+ CASIO fx-CG50
+ TBD
+ Pictures
+ Click images to view full size
+
+
+
+
+
+ CASIO fx-120 (1977-78)
+ TBD
+ Specifications
+
+
+ Size
+ 8.4cm x 16.2cm x 2.4cm
+
+
+ Weight (w/ battery)
+ 209g
+
+
+ Type
+ Scientific
+
+
+ CPU
+ Hitachi HD38111A
+
+
+ Registers
+ 2 standard 1 constant 4 bracket 1 memory
+
+
+ Features
+ %, +/-, RV, F, Sci, ab ⁄c , Sqr, x2 , pi, 1 ⁄x , trig, hyp, DMS-DD, log, yx , SD, nCr, P-R, n!
+
+
+ Display
+ 12-digit VFD (NEC LD8197A)
+
+
+ Pictures
+ Click images to view full size
+
+
+
+
+
+ CASIO fx-82 (1982-85)
+ TBD
+ Pictures
+ Click images to view full size
+
+
+
+
+
+ Texas Instruments TI-30 (1976-90)
+ TBD
+ Pictures
+ Click images to view full size
+
+
+
+
+
+ Texet 880 Executive (1977-78)
+
+ The calculator measures 74.2mm x 135mm x 22.2mm. It weighs 86g without the battery installed, which is a 9v PP3-type battery. Rather than the usual press-stud type holder, the housing has two metal slide clips. There is also what I assume to be a sponge at one end which is supposed to aid in holding the battery in, however it appears to have gone completely hard and I will most likely replace it in the future. There's small adaptor hole at the top, of which the input isn't specified (though it's generally agreed that it's 4.5v centre-positive).
+ The case is black & silvery colored with a thin brushed metallic front panel. The eight-digit bubble display has an absolutely terrible viewing angle, which means you either have to be holding it under your coat or against your face to read it!
+ The keypad is particularly strange in the way that it has 3 cancel buttons, [CE] , [C] and [CA] , while the [CS] button is a Clear Sign button, not another cancel! The keys themselves are particularly stiff and you really have to push them to get them to register. Many 880s suffered something referred to as the "pseudo fixed decimal bug" where, if you typed in 1 + 1.00 = , it would display 2.00 instead of the expected 2
+ Specifications
+
+
+ Size
+ 7.4cm x 13.5cm x 2.2cm
+
+
+ Weight (w/o battery)
+ 86
+
+
+ Type
+ Arithmetic
+
+
+ Logic
+ Algebraic
+
+
+ Power Source
+ PP3 9v
+
+
+ Display
+ 8-digit LED
+
+
+ Pictures
+ Click images to view full size
+
+
+
+
+@stop
diff --git a/resources/views/pages/computers.blade.php b/resources/views/pages/computers.blade.php
new file mode 100644
index 0000000..63e703f
--- /dev/null
+++ b/resources/views/pages/computers.blade.php
@@ -0,0 +1,314 @@
+@extends('layouts.default')
+@section('title', 'Computers')
+@section('description', 'Computers I own or have owned.')
+@section('content')
+
+
+ Custom Build
+
+
+
+
+
+ OS:
+ NixOS 22.11 / Windows 10 Pro
+
+
+ CPU:
+ Intel i7-6700K (8-core) @ 4.0GHz
+
+
+ GPU:
+ NVidia GTX 1060 (3GB)
+
+
+ Memory:
+ 64GB
+
+
+ DISK0:
+ SanDisk SSD Plus (120GB, Win10)
+
+
+ DISK1:
+ Crucial CT500MX500SSD1 (500GB, NixOS)
+
+
+ DISK2:
+ WDC WD20EZEAZ-00GGJB0 (2TB, Data)
+
+
+
+
+
+
+
+ MacBook Pro (2018)
+
+
+
+
+
+ OS:
+ macOS 12.5.1
+
+
+ Display:
+ 2560x1600 (Retina)
+
+
+ CPU:
+ Intel i5-8259U (8-core) @ 2.3GHz
+
+
+ GPU:
+ Intel Iris Plus Graphics 655
+
+
+ Memory:
+ 8GB
+
+
+ DISK:
+ Apple SSD AP0256M (250GB)
+
+
+
+
+
+
+
+ Lenovo ThinkPad T430 (2012)
+
+
+
+
+
+ OS:
+ NixOS 22.11 / Windows 7 Ultimate
+
+
+ CPU:
+ Intel i7-3520M (4-core) @ 3.6GHz
+
+
+ GPU:
+ Intel 3rd Gen Core processor Graphics Controllertd>
+
+
+ Memory:
+ 16GB
+
+
+ DISK0:
+ Crucial CT500MX500SSD1 (500GB, NixOS)
+
+
+ DISK1:
+ Crucial CT250MX500SSD1 (250GB, Win7)
+
+
+
+
+
+
+
+ IBM ThinkPad X41 (2005)
+
+
+
+
+
+ OS:
+ Windows XP Tablet PC Edition (2005, SP3)
+
+
+ CPU:
+ Intel Pentium M (single-core) @ 1.6GHz
+
+
+ GPU:
+ Mobile Intel 915GM/GMS 910GML Express Chipset Family (128MB)
+
+
+ Memory:
+ 1.5GB
+
+
+ DISK:
+ Hitachi HTC426040G9AT00 (40GB)
+
+
+
+
+
+
+
+ Dell OptiPlex GX1 (400L+, 1999)
+
+
+
+
+
+ OS:
+ Windows 3.10 for Workgroups (DOS 6.22)
+
+
+ CPU:
+ Intel Pentium II (Deschutes) @ 400MHz
+
+
+ GPU:
+ ATI 3D Rage Pro (4MB)
+
+
+ Memory:
+ 639MB
+
+
+ DISK:
+ Unknown
+
+
+
+
+
+
+
+ IBM ThinkPad T40 (2003)
+
+
+
+
+
+ OS:
+ Windows XP Pro
+
+
+ CPU:
+ Intel Pentium M (single-core) @ 1.3GHz
+
+
+ GPU:
+ ATI Mobility Radeon 7500 (32MB)
+
+
+ Memory:
+ 1GB
+
+
+ DISK:
+ Fujitsu MHS2030AT (30GB)
+
+
+
+
+
+
+
+ HP Compaq Elite 8100 CMT
+
+
+
+
+
+ OS:
+ Windows Vista 64-bit
+
+
+ CPU:
+ Intel Core i7
+
+
+ GPU:
+
+
+
+ Memory:
+ 16GB
+
+
+ DISK0:
+ SanDisk SSD Plus (120GB, Win10)
+
+
+ DISK1:
+ Crucial CT500MX500SSD1 (500GB, NixOS)
+
+
+
+
+
+
+
+ Mac mini (2014)
+
+
+
+
+
+ OS:
+ VMware ESXi 6.7.0u3
+
+
+ CPU:
+ Intel i5-4278U (4-core) @ 2.6GHz
+
+
+ GPU:
+ Intel Iris Graphics
+
+
+ Memory:
+ 8GB
+
+
+ DISK:
+ Apple HDD HTS541 (1TB)
+
+
+
+
+
+
+
+ Fujitsu Milan (1996)
+
+
+
+
+
+ OS:
+ Windows 98 SE
+
+
+ CPU:
+ Intel Pentium
+
+
+ Memory:
+ 32MB
+
+
+ DISK:
+ IBM DPRA-21215 (1215MB)
+
+
+
+
+
+
+@stop
diff --git a/resources/views/pages/guestbook.blade.php b/resources/views/pages/guestbook.blade.php
new file mode 100644
index 0000000..08bc7cb
--- /dev/null
+++ b/resources/views/pages/guestbook.blade.php
@@ -0,0 +1,77 @@
+@extends('layouts.default')
+@section('title', 'Guestbook')
+@section('content')
+
+
+
+
+
+ @csrf
+
+
+
+
+
+ A few things to note:
+
+ You can submit an entry once every hour .
+ Your IP address is logged but not publically displayed.
+ Any entries that appear to be spam will be removed.
+
+
+
+
+
+
+
+ @php
+ $entries = DB::select('
+ SELECT name, timestamp, message
+ FROM guestbook__entries
+ ORDER BY id DESC
+ ');
+ @endphp
+ Entries ({{ count($entries) }} total)
+ @foreach ($entries as $entry)
+
+
+
+ Submitted by {{ $entry->name }}
+ on {{ gmdate('H:i:s - Y-m-d', $entry->timestamp) }}
+
+ {{ $entry->message }}
+
+
+
+
+ @endforeach
+@stop
diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php
new file mode 100644
index 0000000..9be0baf
--- /dev/null
+++ b/resources/views/pages/home.blade.php
@@ -0,0 +1,88 @@
+@extends('layouts.default')
+@section('title', 'Home')
+@section('description', 'This is the personal homepage of floppydisk.')
+@section('content')
+ Hi! This my personal homepage on the W orld W ide W eb.
+
+
+
+ Fun Facts
+
+
+
+ ◆ I am (unfortunately) British
+
+
+ ◆ I watched the entirety of The Owl House (~18 hours) in under 48 hours.
+
+
+ ◆ I spend way too much time on my computer.
+
+
+ ◆ Some people say I suck at PHP, but that's clearly wrong :P
+
+
+ ◆ Some of my favorite games are: OneShot, Minecraft, Stardew Valley, N++ and Starbound
+
+
+
+
+
+
+ Interests
+
+
+
+ ◆ Tech Theatre
+ - Lighting, Stage Management, etc.
+
+
+ ◆ Programming
+ - HTML, JavaScript, C#, Java, PHP, Ruby
+
+
+ ◆ Photography
+ - Flickr
+
+
+
+
+
+
+
+
+
+ niko
+
+
+
+
+
+
+
+
+
+
+
+@stop
diff --git a/resources/views/pages/music.blade.php b/resources/views/pages/music.blade.php
new file mode 100644
index 0000000..3e97daa
--- /dev/null
+++ b/resources/views/pages/music.blade.php
@@ -0,0 +1,54 @@
+@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'];
+
+ $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
+
+
+
+ Last/Current Track:
+
+
+
+
+ {{ $current_track->name }} • {{ $current_track->artist }}
+
+
+
+
+
+
+
+
+
+ Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)
+
+
+
+ #
+ Track
+ Artist
+ Plays
+
+ @foreach ($top_tracks as $track)
+ @php $count++ @endphp
+ @if ($count >= $cfg['toptracks']+1)
+ @break
+ @endif
+
+ {{ $count }}
+ {{ $track->name }}
+ {{ $track->artist }}
+ {{ $track->plays }}
+
+ @endforeach
+
+@stop
diff --git a/resources/views/pages/projects.blade.php b/resources/views/pages/projects.blade.php
new file mode 100644
index 0000000..26a9a0d
--- /dev/null
+++ b/resources/views/pages/projects.blade.php
@@ -0,0 +1,16 @@
+get('projects'); ?>
+@extends('layouts.default')
+@section('title', 'Projects')
+@section('description', 'My projects')
+@section('content')
+ @foreach ($categories as $category)
+ {{ $category['name']}}
+ @foreach ($category['projects'] as $project)
+
+
{{ $project['name'] }} - {{ $project['description'] }}
+
Languages: {{ implode(", ", $project['languages']) }}
+
+
+ @endforeach
+@endforeach
+@stop
diff --git a/resources/views/pages/template.blade.php b/resources/views/pages/template.blade.php
new file mode 100644
index 0000000..18fe585
--- /dev/null
+++ b/resources/views/pages/template.blade.php
@@ -0,0 +1,6 @@
+@extends('layouts.default')
+@section('title', 'Page Title')
+@section('description', 'Page description goes here')
+@section('content')
+page content
+@stop
diff --git a/resources/views/pages/weather.blade.php b/resources/views/pages/weather.blade.php
new file mode 100644
index 0000000..823c448
--- /dev/null
+++ b/resources/views/pages/weather.blade.php
@@ -0,0 +1,48 @@
+@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)];
+}
+
+$data = json_decode(file_get_contents($api_root.'/weather'));
+$updated = gmdate('H:i Y-m-d', $data->updated);
+$data = $data->current;
+@endphp
+
+
+ Local Weather
+
+
+
+ Wind Speed:
+ {{ $data->wind->speed }} mph
+
+
+ Wind Direction:
+ {{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}
+
+
+ Temperature:
+ {{ $data->temperature }}°C
+
+
+ Rain Rate:
+ {{ $data->rain_rate }} mm/hr
+
+
+ Humidity:
+ {{ $data->humidity }}%
+
+
+
+(Last Update: {{ $updated }})
+@stop
diff --git a/resources/views/pandamonium.blade.php b/resources/views/pandamonium.blade.php
deleted file mode 100644
index 0e90c46..0000000
--- a/resources/views/pandamonium.blade.php
+++ /dev/null
@@ -1,25 +0,0 @@
-
- Absolute Pandamonium!
- {{ asset('/images/embeds/pandamonium.png') }}
- Follow the adventures of Rosco, Leko, Viz and AJ!
- @if (isLegacy())
- Click images for full-size version (56k no!)
- @foreach($images as $image)
-
- @if(isset($image["description"]))
- {{$image["description"]}}
- @endif
- @endforeach
- @else
-
- @foreach($images as $image)
-
-
- @if(isset($image["description"]))
-
{{$image["description"]}}
- @endif
-
- @endforeach
-
- @endif
-
diff --git a/routes/web.php b/routes/web.php
index 28bb7d0..448000f 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,10 +1,5 @@
middleware('validator')
+Route::get('/', function () {
+ return view('pages.home');
+});
+
+Route::get('/bookmarks', function () {
+ return view('pages.bookmarks');
+});
+
+Route::get('/projects', function () {
+ return view('pages.projects');
+});
+
+Route::get('/calculators', function () {
+ return view('pages.calculators');
+});
+
+Route::get('/computers', function () {
+ return view('pages.computers');
+});
+
+Route::get('/guestbook', 'App\Http\Controllers\GuestbookController@guestbook')
+ ->name('guestbook');
+
+Route::post('/guestbook', 'App\Http\Controllers\GuestbookController@guestbookpost')
+ ->name('guestbookPost')
->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('/weather', function () {
+ return view('pages.weather');
});
-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'));
+Route::get('/music', function () {
+ return view('pages.music');
});
+
+Route::get('/bot', function () {
+ return view('pages.bot');
+});
+
+/* ------------------------------ Admin Routes ------------------------------ */
+
+Route::get('/admin', function () {
+ if (!auth()->check()) {
+ return view('errors.no-auth');
+ }
+ return view('pages.admin.index');
+});
+
+Route::get('/admin/guestbook', function () {
+ if (!auth()->check()) {
+ return view('errors.no-auth');
+ }
+ return view('pages.admin.guestbook');
+});
+
+Route::get('/admin/guestbook/delete', function () {
+ if (!auth()->check()) {
+ return view('errors.no-auth');
+ }
+
+ $id = request()->input('id');
+ $entry = DB::table('guestbook__entries')->find($id);
+
+ if ($entry) {
+ // Render a confirmation view
+ return view('pages.admin.guestbook-del-confirm', compact('entry'));
+ } else {
+ return view('errors.generic-error')
+ ->with('error', "Entry not found")
+ ->with('description', "The specified entry does not exist!");
+ }
+});
+
+Route::post('/admin/guestbook/delete', function () {
+ if (!auth()->check()) {
+ return view('errors.no-auth');
+ }
+
+ $id = request()->input('id');
+ DB::table('guestbook__entries')->where('id', $id)->delete();
+
+ return back()->with('success', 'Entry deleted successfully!');
+});
+
diff --git a/scripts/updatecache.bat b/scripts/updatecache.bat
deleted file mode 100644
index 0245663..0000000
--- a/scripts/updatecache.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-php artisan config:cache
-php artisan route:cache
-php artisan view:cache
-php artisan event:cache
-php artisan cache:clear
diff --git a/scripts/updatecache.sh b/scripts/updatecache.sh
index b4acd8c..53dad65 100755
--- a/scripts/updatecache.sh
+++ b/scripts/updatecache.sh
@@ -2,4 +2,3 @@ php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
-php artisan cache:clear
diff --git a/storage/app/.gitignore b/storage/app/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore
old mode 100755
new mode 100644
diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore
old mode 100755
new mode 100644