This commit is contained in:
@@ -2,11 +2,6 @@
|
|||||||
from flask import Blueprint, render_template, abort, request
|
from flask import Blueprint, render_template, abort, request
|
||||||
import os, markdown
|
import os, markdown
|
||||||
|
|
||||||
try:
|
|
||||||
from src.name import get_name
|
|
||||||
except ImportError:
|
|
||||||
from name import get_name
|
|
||||||
|
|
||||||
|
|
||||||
# Create blueprint
|
# Create blueprint
|
||||||
bp = Blueprint('dynamic_routes', __name__)
|
bp = Blueprint('dynamic_routes', __name__)
|
||||||
@@ -38,22 +33,20 @@ def catch_all(filename):
|
|||||||
return render_template(
|
return render_template(
|
||||||
'bases/directory.html',
|
'bases/directory.html',
|
||||||
directory=filename + "/" if not filename.endswith('/') else filename,
|
directory=filename + "/" if not filename.endswith('/') else filename,
|
||||||
pages=ListFiles(filename),
|
pages=ListFiles(filename)
|
||||||
name=get_name(request)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return render_template(f'pages/{filename}', name=get_name(request))
|
return render_template(f'pages/{filename}')
|
||||||
|
|
||||||
elif os.path.exists(get_path(filename + '.html')):
|
elif os.path.exists(get_path(filename + '.html')):
|
||||||
return render_template(f'pages/{filename}.html', name=get_name(request))
|
return render_template(f'pages/{filename}.html')
|
||||||
|
|
||||||
elif os.path.exists(get_path(filename + '.md')):
|
elif os.path.exists(get_path(filename + '.md')):
|
||||||
output = markdown.markdown(open(get_path(filename + '.md'), "r").read())
|
output = markdown.markdown(open(get_path(filename + '.md'), "r").read())
|
||||||
return render_template(
|
return render_template(
|
||||||
f'bases/md.html',
|
f'bases/md.html',
|
||||||
title = filename.split("/")[-1],
|
title = filename.split("/")[-1],
|
||||||
markdown = output,
|
markdown = output
|
||||||
name=get_name(request)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
from flask import Blueprint, render_template, request
|
from flask import Blueprint, render_template
|
||||||
from werkzeug.exceptions import HTTPException
|
from werkzeug.exceptions import HTTPException
|
||||||
|
|
||||||
try:
|
|
||||||
from src.name import get_name
|
|
||||||
except ImportError:
|
|
||||||
from name import get_name
|
|
||||||
|
|
||||||
|
|
||||||
bp = Blueprint("errors", __name__)
|
bp = Blueprint("errors", __name__)
|
||||||
|
|
||||||
@@ -13,19 +8,19 @@ bp = Blueprint("errors", __name__)
|
|||||||
@bp.route('/500')
|
@bp.route('/500')
|
||||||
@bp.app_errorhandler(500)
|
@bp.app_errorhandler(500)
|
||||||
def internal_server_error(error:HTTPException=None):
|
def internal_server_error(error:HTTPException=None):
|
||||||
return render_template('errors/500.html', error=error, name=get_name(request)), 500
|
return render_template('errors/500.html', error=error), 500
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/404')
|
@bp.route('/404')
|
||||||
@bp.app_errorhandler(404)
|
@bp.app_errorhandler(404)
|
||||||
def not_found(error:HTTPException=None):
|
def not_found(error:HTTPException=None):
|
||||||
return render_template('errors/404.html', error=error, name=get_name(request)), 404
|
return render_template('errors/404.html', error=error), 404
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/400')
|
@bp.route('/400')
|
||||||
@bp.app_errorhandler(400)
|
@bp.app_errorhandler(400)
|
||||||
def bad_request(error:HTTPException=None):
|
def bad_request(error:HTTPException=None):
|
||||||
return render_template('errors/400.html', error=error, name=get_name(request)), 400
|
return render_template('errors/400.html', error=error), 400
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/idk')
|
@bp.route('/idk')
|
||||||
@@ -40,5 +35,4 @@ def idk(error:HTTPException=None):
|
|||||||
code = error.code,
|
code = error.code,
|
||||||
description = error.description,
|
description = error.description,
|
||||||
err_name = error.name,
|
err_name = error.name,
|
||||||
name=get_name(request)
|
|
||||||
), error.code
|
), error.code
|
||||||
@@ -7,10 +7,8 @@ try:
|
|||||||
import src.dynamic_routes as dynamic_routes
|
import src.dynamic_routes as dynamic_routes
|
||||||
import src.errors as errors
|
import src.errors as errors
|
||||||
import src.pg_log as pg_log
|
import src.pg_log as pg_log
|
||||||
from src.name import get_name
|
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import dynamic_routes, errors, pg_log
|
import dynamic_routes, errors, pg_log
|
||||||
from name import get_name
|
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
@@ -62,15 +60,15 @@ log.info("Blueprints registered.")
|
|||||||
# ROUTES
|
# ROUTES
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def index():
|
def index():
|
||||||
return render_template("index.html", name=get_name(request))
|
return render_template("index.html")
|
||||||
|
|
||||||
@app.route("/toaster")
|
@app.route("/toaster")
|
||||||
def toaster():
|
def toaster():
|
||||||
return render_template("toaster.html", name=get_name(request))
|
return render_template("toaster.html")
|
||||||
|
|
||||||
@app.route("/terminal")
|
@app.route("/terminal")
|
||||||
def terminal():
|
def terminal():
|
||||||
return render_template("terminal.html", name=get_name(request))
|
return render_template("terminal.html")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
def get_name(req):
|
|
||||||
if req.headers.get("Host") == "proot.uk":
|
|
||||||
return "Toaster"
|
|
||||||
else:
|
|
||||||
return "Alfie King"
|
|
||||||
@@ -58,19 +58,13 @@ else {
|
|||||||
randomText = `<a href='javascript:void(0)' onclick='randomSite()'>random</a> | `;
|
randomText = `<a href='javascript:void(0)' onclick='randomSite()'>random</a> | `;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tag.classList = "webring";
|
||||||
|
|
||||||
//this is the code that displays the widget - EDIT THIS if you want to change the structure
|
//this is the code that displays the widget - EDIT THIS if you want to change the structure
|
||||||
tag.insertAdjacentHTML('afterbegin', `
|
tag.insertAdjacentHTML('afterbegin', `
|
||||||
<table>
|
<a href='${indexPage}'>${ringName}</a><br>
|
||||||
<tr>
|
<a href='${sites[previousIndex]}'><--</a>
|
||||||
<td class='webring-prev'><a href='${sites[previousIndex]}'>prev</a></td>
|
<a href='${sites[nextIndex]}'>--></a>
|
||||||
<td class='webring-info'>This site is part of the ${ringName} webring 😸</br>
|
|
||||||
<span class='webring-links'>
|
|
||||||
${randomText}
|
|
||||||
${indexText}
|
|
||||||
<a href='https://garlic.garden/onionring/'>onionring</a></span></td>
|
|
||||||
<td class='webring-next'><a href='${sites[nextIndex]}'>next</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
`);
|
`);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,19 +3,19 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{% block title %}{{ name }}'s basement{% endblock %}</title>
|
<title>{% block title %}Toasters's basement{% endblock %}</title>
|
||||||
<link rel="icon" href="{% block icon %}/static/content/{% if name == 'Toaster' %}toaster/Toaster_v1.0_sticker.png{% else %}general_images/icon.webp{% endif %}{% endblock %}">
|
<link rel="icon" href="toaster/Toaster_v1.0_sticker.png">
|
||||||
<link rel="stylesheet" href="/static/css/bases/base.css">
|
<link rel="stylesheet" href="/static/css/bases/base.css">
|
||||||
<meta name="description" content="{% block description %}server backend survivor{% endblock %}">
|
<meta name="description" content="{% block description %}server backend survivor{% endblock %}">
|
||||||
<meta name="keywords" content="{% block keywords %}Alfie King, Alfie, King, Alfieking, Alfieking.dev, dev, server, developer, backend, selfhost, homelab{% endblock %}">
|
<meta name="keywords" content="{% block keywords %}Alfie King, Alfie, King, Alfieking, Alfieking.dev, dev, server, developer, backend, selfhost, homelab, Toaster, Toastergen, proot.uk, protogen, furry, fursona{% endblock %}">
|
||||||
<meta name="author" content="Alfie King">
|
<meta name="author" content="Alfie King">
|
||||||
<meta name="robots" content="all">
|
<meta name="robots" content="all">
|
||||||
<meta name="theme-color" content="#63de90" data-react-helmet="true">
|
<meta name="theme-color" content="#63de90" data-react-helmet="true">
|
||||||
<meta property="og:site_name" content="{% if name == 'Toaster' %}proot.uk{% else %}alfieking.dev{% endif %}">
|
<meta property="og:site_name" content="proot.uk">
|
||||||
<meta property="og:url" content="https://{% if name == 'Toaster' %}proot.uk{% else %}alfieking.dev{% endif %}/">
|
<meta property="og:url" content="https://proot.uk/">
|
||||||
<meta property="og:title" content="{{ self.title() }}">
|
<meta property="og:title" content="{{ self.title() }}">
|
||||||
<meta property="og:description" content="{{ self.description() }}">
|
<meta property="og:description" content="{{ self.description() }}">
|
||||||
<meta property="og:image" content="{% block og_image %}/static/content/{% if name == 'Toaster' %}toaster/Toaster_v1.0_sticker.png{% else %}general_images/icon.webp{% endif %}{% endblock %}">
|
<meta property="og:image" content="toaster/Toaster_v1.0_sticker.png">
|
||||||
{% block head %}
|
{% block head %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
@@ -100,9 +100,9 @@
|
|||||||
<main id="main">
|
<main id="main">
|
||||||
<header id="home">
|
<header id="home">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<img src="/static/content/{% if name == 'Toaster' %}toaster/Toaster_v1.0_sticker.png{% else %}general_images/icon.webp{% endif %}">
|
<img src="/static/content/toaster/Toaster_v1.0_sticker.png">
|
||||||
<div>
|
<div>
|
||||||
<h1>{{ name }}</h1>
|
<h1>Toaster</h1>
|
||||||
<h2 id="typing">server backend survivor</h2>
|
<h2 id="typing">server backend survivor</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}/{{ directory }} - Alfie's basement{% endblock %}
|
{% block title %}/{{ directory }} - Toaster's basement{% endblock %}
|
||||||
{% block description %}server backend survivor{% endblock %}
|
{% block description %}server backend survivor{% endblock %}
|
||||||
|
|
||||||
{% block head %}
|
{% block head %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}{{ title }} - Alfie's basement{% endblock %}
|
{% block title %}{{ title }} - Toaster's basement{% endblock %}
|
||||||
{% block description %}server backend survivor{% endblock %}
|
{% block description %}server backend survivor{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}Home - {{ name }}'s basement{% endblock %}
|
{% block title %}Home - Toaster's basement{% endblock %}
|
||||||
{% block description %}server backend survivor{% endblock %}
|
{% block description %}server backend survivor{% endblock %}
|
||||||
|
|
||||||
{% block head %}
|
{% block head %}
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<section class="smileos">
|
<section class="smileos">
|
||||||
<span style="margin: auto;">
|
<span style="margin: auto;">
|
||||||
Try going to the <span style="color: #ff4343;">Terminal</span> for more information
|
Try going to the <span style="color: var(--smileos2-emphasis);">Terminal</span> for more information
|
||||||
</span>
|
</span>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@@ -110,6 +110,14 @@
|
|||||||
<h1>Some News</h1>
|
<h1>Some News</h1>
|
||||||
<h6>(dont expect this to be updated often tho :P)</h6>
|
<h6>(dont expect this to be updated often tho :P)</h6>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h2>28-03-2026</h2>
|
||||||
|
<span style="color: gray; font-size: 0.8rem;">[insert a few hours later meme here]</span><br>
|
||||||
|
Ok so it has been a "while", I recently got the domain proot.uk, so if you are accessing this site from there then all of the content relating to my name and
|
||||||
|
the tv head guy is replaced with toaster. I was too indicisive on what to do with the domain since I wanted to keep the old one but the new domain is now the
|
||||||
|
"main site". <span style="color: gray; font-size: 0.8rem;">As I was typing this I realised that it would prob be better to just redirect the old domain to
|
||||||
|
the new one and remove the complicated name system, so I will do that. And yes im leaving this in, cus I find it funny.</span>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<h2>05-03-2026</h2>
|
<h2>05-03-2026</h2>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}Critters MK - {{ name }}'s basement{% endblock %}
|
{% block title %}Critters MK - Toaster's basement{% endblock %}
|
||||||
{% block description %}furry corner{% endblock %}
|
{% block description %}furry corner{% endblock %}
|
||||||
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
||||||
{% block keywords %}
|
{% block keywords %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}Paws'N'Pistons - {{ name }}'s basement{% endblock %}
|
{% block title %}Paws'N'Pistons - Toaster's basement{% endblock %}
|
||||||
{% block description %}furry corner{% endblock %}
|
{% block description %}furry corner{% endblock %}
|
||||||
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
||||||
{% block keywords %}
|
{% block keywords %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "bases/base.html" %}
|
{% extends "bases/base.html" %}
|
||||||
|
|
||||||
{% block title %}Toaster - {{ name }}'s basement{% endblock %}
|
{% block title %}Toaster - Toaster's basement{% endblock %}
|
||||||
{% block description %}furry corner{% endblock %}
|
{% block description %}furry corner{% endblock %}
|
||||||
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
|
||||||
{% block keywords %}
|
{% block keywords %}
|
||||||
@@ -52,9 +52,9 @@ protogen v1.0, toaster v1.0
|
|||||||
</section>
|
</section>
|
||||||
<div class="flex-col">
|
<div class="flex-col">
|
||||||
<img src="/static/content/toaster/Toaster_v1.0_Dark.png" alt="toaster" id="toaster-img">
|
<img src="/static/content/toaster/Toaster_v1.0_Dark.png" alt="toaster" id="toaster-img">
|
||||||
<section class="fill-height">
|
<section class="fill-height smileos">
|
||||||
<p>
|
<p>
|
||||||
NEW AND IMPROVED! Toaster v1.0 is here!
|
<span style="color: var(--smileos2-emphasis);">NEW AND IMPROVED!</span> Toaster v1.0 is here!
|
||||||
<br><br>
|
<br><br>
|
||||||
Toaster v1.0 is the first version of Toaster that I have drawn that I am actually happy with.
|
Toaster v1.0 is the first version of Toaster that I have drawn that I am actually happy with.
|
||||||
Im still working on the design, so it may change in the future, but I think I like this enough to keep it for now.
|
Im still working on the design, so it may change in the future, but I think I like this enough to keep it for now.
|
||||||
|
|||||||
Reference in New Issue
Block a user