commit 7eeb201f1f5d58aea61ea54db5a5fe7947b03ff1 Author: Drath Date: Wed Jun 28 20:16:39 2023 +0200 init diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..57cce0e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.8 +WORKDIR /app +COPY requirements.txt requirements.txt +RUN pip3 install -r requirements.txt && rm requirements.txt +COPY app/ . +CMD ["python3", "main.py"] diff --git a/app/acc.json b/app/acc.json new file mode 100644 index 0000000..23a4d16 --- /dev/null +++ b/app/acc.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "ethereal-jigsaw-348308", + "private_key_id": "3cd92d9f24b9e13aba07f99f2fcd354db920b148", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCw/UkWWkjXO8dv\ndjyZV91EpuP4IL34X+HjAosDAGVFGRmkg9fXGZ7ELNOb0cWTlMridHPP9Db7ezz6\nhilIwEVFFyPe+QL6YxIJSaP+SoKFSAnZ43WfPHnFRQrBGgvelZU/CW7MkmXiPcy5\nogOhjIM/I1yWqG2S84Wx6QsE/iaDRaPXomXzDqX2rv7fMd2I+jSG72vEDTlHhvvR\nRSmrn5ufOgGAxxAVZ9jrVp3dPJ0Z6+pvsDbrnBwFhP3G7WTolQAkdq8p1oDHYz+g\nIkpTPVBUXyXRaY5tq5eLidU1Mvmkh320m8W1Jv/3U2j2P2zNWJnQB2kBHWyDgSti\ncQqtqMlJAgMBAAECggEAA/CGStlyWlsMDOWpBMjpU5NwnhDKpGI9LvdsF08t6Vq6\n+VsdyxuL2clILsvB6jGugTeSTDq4nWKaf03/yZWJf9nD+b0GVvqCSeaRjzc8XT6D\nnq/xR6up57BugAQvtC7RDbv7pmruEdXBt/8kHCZYXjSDMlGQs+NN1+XHFi52tmTP\nz8CoS19/PpNsx6RaGp1xKRNKVxNWJRptsn6MnljGjYpOtE8l0Nmfdmf0DrE61Ke7\nty6nn9RDpSLav/5l8qCx54RNCySS4DktrCO9K8y2rg6nV6jLi7Z124CaOnXWKZwR\nqbp/p0+lDoyVUn7MFgphk7W6BY2Cj42/n9CRHJ2n4wKBgQD4xlKbWlDDlISz63kt\nTaksC2CNgjSEQR6gWB0gbxq+cvgfANHbkGEdYxl1hzta3CJj+TOqjgMxiDtNk7uY\n9W2ZrKcfhNLb6gza5RiSCWC9R840rYf+9VkGP5yvl4dKnfdy5WysvpROh++LA4lg\ncWDSRpO8j5Kivbau6FwY8gh2vwKBgQC2ITpxh58GLTadONd2Hu5+WdHhKKZv6OmN\nsdfqnSypkeoVtIIXLw7s/fkLWTx3HQ2Fdba16zVpUoPWLe1cFmWKr+6JTTsSh31V\n6oGXALtCFrEjgnJK5ghLHljFHr6Of8TAszSuZ0v+V5GoU+Z7K03gwaqvNUvlUb/A\nBJwhvo6J9wKBgQDm7wteBV/1vpfVgSBy6qXBKiqOEjF4GA87H7CiHCFCa+1islsd\nLBDKu+S1UjzKIpGWJo5MpBnY0DLk1+AMpMACKODXBHDNDp6yUHsXjbcM3mxQQEp/\nZfgnMcPcyJghrzQ2pzzTuvJnWA8JB9Zt/bG4YSXho5Gmmt/LzA06ZutudwKBgQCD\n4oHwrhWgomL27K9RUMrA4gfSNN55ET72pT7GHLS3wfqxZvoBEcmMIckSx7a6RmaB\nKyF4kG8n6mGfWbiUw38aM5XXBP7uxwAik+LtVtFC5S22mgJrbDG7O6lqbH3usGTo\naZyPYiusbPsD2mV+8Xe+dl9D6qMf1te0k2IAKX4MNwKBgQCPxW2oeJsbylvx/gEn\n8d4B3s+exAxk4V9o7uqX2+5NV6hi9d3qat1UPW+cWqMdoCLaz81qZYeHbZjjQaVP\nxzUyhaMHEmrSxDqy3F6cl0EUrcDITaz4LubiQbQgQTrBY200ngVKLCOXDkAirbM+\nSU5uqKTbcXXRKsXLg0tEBdroqA==\n-----END PRIVATE KEY-----\n", + "client_email": "211687439568-compute@developer.gserviceaccount.com", + "client_id": "117238780902837398107", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/211687439568-compute%40developer.gserviceaccount.com", + "universe_domain": "googleapis.com" +} diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..ddb0d7e --- /dev/null +++ b/app/main.py @@ -0,0 +1,57 @@ +from flask import Flask, render_template, current_app as this, Response +from google.cloud import storage +from flask_minify import Minify + + +app = Flask(__name__.split('.')[0]) +app.jinja_env.trim_blocks = True +app.jinja_env.lstrip_blocks = True +Minify(app=app, html=True, js=True, cssless=True) + +def humanSize(size: int) -> str: + prefix = [" ", " K", " M", " G", " T"] + i = 0 + while size > 1024: + size /= 1024 + i += 1 + + + size = str(round(size,3-len(str(int(size))))) + if size.endswith(".0"): size = size.replace(".0","") + + return size+prefix[i]+"B" + +def getDownloads(bucket_name: str) -> list: + """ takes the name of a google storage bucket and returns a list of objects on it """ + storage_client = storage.Client.from_service_account_json(json_credentials_path="acc.json") + blobs = [] + for blob in storage_client.list_blobs(bucket_name, prefix='dload'): + if blob.size == 0: continue + blobs.append({"name": blob.name.replace("dload/",""), "size": humanSize(blob.size), "url": blob.public_url}) + storage_client.close() + return blobs + +@app.route('/') +def main(): + return render_template("index.html") + +@app.route('/codecalc') +def calc(): + return render_template("code-calc.html") + +@app.route('/secret') +def secret(): + imgUrl = "/static/images/kroniicopter.webp" + return render_template("secret.html", imgUrl = imgUrl) + +@app.route('/tests') +def test(): + return render_template("test.html") + +@app.route('/downloads') +def dload(): + return render_template("downloads.htm", users = getDownloads("drath-public")) + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=8080, debug=True) \ No newline at end of file diff --git a/app/static/fonts/Cantarell-VF.otf b/app/static/fonts/Cantarell-VF.otf new file mode 100644 index 0000000..13b4c75 Binary files /dev/null and b/app/static/fonts/Cantarell-VF.otf differ diff --git a/app/static/fonts/Cantarell-VF.woff2 b/app/static/fonts/Cantarell-VF.woff2 new file mode 100644 index 0000000..5360548 Binary files /dev/null and b/app/static/fonts/Cantarell-VF.woff2 differ diff --git a/app/static/fonts/DejaVuSerif-Bold-webfont.woff b/app/static/fonts/DejaVuSerif-Bold-webfont.woff new file mode 100644 index 0000000..8a18d59 Binary files /dev/null and b/app/static/fonts/DejaVuSerif-Bold-webfont.woff differ diff --git a/app/static/fonts/DejaVuSerif-webfont.woff b/app/static/fonts/DejaVuSerif-webfont.woff new file mode 100644 index 0000000..886b8c6 Binary files /dev/null and b/app/static/fonts/DejaVuSerif-webfont.woff differ diff --git a/app/static/images/kroniicopter.webp b/app/static/images/kroniicopter.webp new file mode 100644 index 0000000..388e045 Binary files /dev/null and b/app/static/images/kroniicopter.webp differ diff --git a/app/static/images/stocking.png b/app/static/images/stocking.png new file mode 100644 index 0000000..b7798c6 Binary files /dev/null and b/app/static/images/stocking.png differ diff --git a/app/static/manifest.json b/app/static/manifest.json new file mode 100644 index 0000000..2c0e763 --- /dev/null +++ b/app/static/manifest.json @@ -0,0 +1,21 @@ +{ + "name": "Drath's website", + "short_name" : "Drath's website", + "start_url": "index.htm", + "scope" : "./", + "icons": [ + { + "src": "./images/stocking.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "./images/stocking.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#f6f5f4", + "background_color": "#f6f5f4", + "display": "standalone" +} diff --git a/app/static/scripts/downloadsTable.js b/app/static/scripts/downloadsTable.js new file mode 100644 index 0000000..824c2d7 --- /dev/null +++ b/app/static/scripts/downloadsTable.js @@ -0,0 +1,40 @@ +function addItem(url) { + getFileSize(url, insertRow); +} + +async function getFileSize(url, myCallback) { + // needs proper cors config + var http = new XMLHttpRequest(); + http.open('HEAD', url, true); // true = Asynchronous + http.onreadystatechange = function() { + if (this.readyState == this.DONE) { + if (this.status === 200) { + myCallback(url,parseInt(this.getResponseHeader('content-length'))); + } + } + }; + http.send(); +} + +function insertRow(url, size) { + let table = document.getElementById("table"); + var newRow = table.insertRow(table.length); + + let suffixes = ["B", "KB", "MB", "GB", "TB"]; + var sindex = 0; + while(size > 1024) { + sindex+=1; + size/=1024; + } + + newRow.insertCell(0).innerHTML = ""+url.split("/").pop()+""; + newRow.insertCell(1).innerHTML = pRound(size) + " " + suffixes[sindex]; +} + +function pRound(num) { + // pretty round + mult = Math.ceil(Math.pow(10,3-String(num).split(".",1)[0].length)); + return Math.round(num*mult)/mult; +} + +// thoughts and prayers for everyone working in javascript \ No newline at end of file diff --git a/app/static/scripts/randImage.js b/app/static/scripts/randImage.js new file mode 100644 index 0000000..29757f9 --- /dev/null +++ b/app/static/scripts/randImage.js @@ -0,0 +1,31 @@ + +function randImg() { + var arrayImg = new Array(); + + arrayImg.push("1605617441753.png"); + arrayImg.push("1613916651677.png"); + arrayImg.push("1624171748298.png"); + arrayImg.push("1628050647008.webp"); + arrayImg.push("20220301_152225.jpg"); + arrayImg.push("20220308_211848.jpg"); + arrayImg.push("20220404_132144.jpg"); + arrayImg.push("20220404_132233.jpg"); + arrayImg.push("20220430_093257.jpg"); + arrayImg.push("20220502_103812.jpg"); + arrayImg.push("20220509_142239.jpg"); + arrayImg.push("EuyVfk9XYAEGA-x.jpg"); + arrayImg.push("FECoZcOWQAQmwd9.jpeg"); + arrayImg.push("FH5XkuZVkAI8VnL.jpg"); + arrayImg.push("FHIyMT7X0AowdpZ.png"); + arrayImg.push("FIQqCbOVcAIjZjY.jpg"); + arrayImg.push("FSkGFVKacAA8Opl.jpg"); + arrayImg.push("__kiryu_coco_and_bagpipe_hololive_and_1_more_drawn_by_chain_s__sample-a6b80c5333561d788a328239d51066dc.jpg"); + arrayImg.push("ahp3YdbjFcPQgwPDiqu4Cg.png"); + + var img = arrayImg[ Math.floor( Math.random() * arrayImg.length ) ]; + document.getElementById('randomImageGoesHere').src = "https://storage.googleapis.com/drath-public/rand/"+img; + +} + + + diff --git a/app/static/scripts/renault-calculator.js b/app/static/scripts/renault-calculator.js new file mode 100644 index 0000000..ce0d940 --- /dev/null +++ b/app/static/scripts/renault-calculator.js @@ -0,0 +1,16 @@ +document.getElementById("precode").addEventListener("keyup",code); + +function code() { + // lovingly stolen from https://github.com/kpym/autoradio-renault + var precode = document.getElementById("precode").value.toUpperCase(); + + if (!/^[A-Z]\d{3}$/.test(precode) || precode.startsWith("A0")) { return ''; } + + x = precode.charCodeAt(1) + precode.charCodeAt(0) * 10 - 698; + y = precode.charCodeAt(3) + precode.charCodeAt(2) * 10 + x - 528; + z = (y*7) % 100; + code = Math.floor(z / 10) + (z % 10) * 10 + ((259 % x) % 100) * 100; + + document.getElementById("code").value = code.toString().padStart(4,'0'); + // document.getElementById('code').innerHTML = code.toString().padStart(4,'0'); +} \ No newline at end of file diff --git a/app/static/scripts/service-worker.js b/app/static/scripts/service-worker.js new file mode 100644 index 0000000..71dbac2 --- /dev/null +++ b/app/static/scripts/service-worker.js @@ -0,0 +1,25 @@ +// we're **progressive** now + +const ASSETS = [ + "/resources/", + "/index.htm", + "/secrets/", + "/" +]; + +let cache_name = "SimiCart"; // The string used to identify our cache +self.addEventListener("install", event => { + console.log("installing..."); + event.waitUntil( + caches + .open(cache_name) + .then(cache => { + return cache.addAll(assets); + }) + .catch(err => console.log(err)) + ); +}); + +self.addEventListener("fetch", event => { + console.log("You fetched " + event.url); +}); \ No newline at end of file diff --git a/app/static/styles/downloads.css b/app/static/styles/downloads.css new file mode 100644 index 0000000..1ecc159 --- /dev/null +++ b/app/static/styles/downloads.css @@ -0,0 +1,15 @@ +body { + max-width: 60rem !important; +} + +a { + font-variation-settings: 'wght' 400 !important; +} + +table { + width: 100%; + text-align: left; + font-size: 1.05rem; + line-height: 160%; + padding: 0.6rem 1.2rem; +} diff --git a/app/static/styles/fonts.css b/app/static/styles/fonts.css new file mode 100644 index 0000000..e0e46db --- /dev/null +++ b/app/static/styles/fonts.css @@ -0,0 +1,20 @@ +@font-face { + font-family: 'dejavu_serifbold'; + src: url('DejaVuSerif-Bold-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'dejavu_serif'; + src: url('DejaVuSerif-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Cantarell vf'; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: 'Regular'; + src: url('/static/fonts/Cantarell-VF.woff2') format('woff2'), + url('/static/fonts/Cantarell-VF.otf') format('opentype'); + +} \ No newline at end of file diff --git a/app/static/styles/gnomecolors.css b/app/static/styles/gnomecolors.css new file mode 100644 index 0000000..71a780c --- /dev/null +++ b/app/static/styles/gnomecolors.css @@ -0,0 +1,51 @@ +:root { + --rounded-corner: 12px; + --gnomeblue: #1c71d8; + --blue1: rgb(153,193,241); + --blue2: rgb(98,160,234); + --blue3: rgb(53,132,228); + --blue4: rgb(28,113,216); + --blue5: rgb(26,95,180); + --green1: rgb(143,240,164); + --green2: rgb(87,227,137); + --green3: rgb(51,209,122); + --green4: rgb(46,194,126); + --green5: rgb(38,162,105); + --yellow1: rgb(249,240,107); + --yellow2: rgb(248,228,92); + --yellow3: rgb(246,211,45); + --yellow4: rgb(245,194,17); + --yellow5: rgb(229,165,10); + --orange1: rgb(255,190,111); + --orange2: rgb(255,163,72); + --orange3: rgb(255,120,0); + --orange4: rgb(230,97,0); + --orange5: rgb(198,70,0); + --red1: rgb(246,97,81); + --red2: rgb(237,51,59); + --red3: rgb(224,27,36); + --red4: rgb(192,28,40); + --red5: rgb(165,29,45); + --purple1: rgb(220,138,221); + --purple2: rgb(192,97,203); + --purple3: rgb(145,65,172); + --purple4: rgb(129,61,156); + --purple5: rgb(97,53,131); + --brown1: rgb(205,171,143); + --brown2: rgb(181,131,90); + --brown3: rgb(152,106,68); + --brown4: rgb(134,94,60); + --brown5: rgb(99,69,44); + --light1: rgb(255,255,255); + --light2: rgb(246,245,244); + --light3: rgb(222,221,218); + --light4: rgb(192,191,188); + --light5: rgb(154,153,150); + --dark1: rgb(119,118,123); + --dark2: rgb(94,92,100); + --dark3: rgb(61,56,70); + --dark4: rgb(36,31,49); + --dark5: rgb(0,0,0); + --text: #f6f5f4; + --maxwidth: 56rem; + } \ No newline at end of file diff --git a/app/static/styles/style.css b/app/static/styles/style.css new file mode 100644 index 0000000..2f65dc6 --- /dev/null +++ b/app/static/styles/style.css @@ -0,0 +1,102 @@ +:root { + --rounded-corner: 12px; + --shade: 220; +} + +body { + color: hsl(var(--root-hue),80%,20%); + background-color: hsl(var(--root-hue),15%,90%); + font-size: 18px; + max-width: 40rem; + font: 1.2rem/1.6 'Cantarell vf', 'Cantarell', sans-serif; + padding: 1.5rem 1.1rem; + margin: 1rem auto; +} + +header { + color: hsl(var(--root-hue),100%,20%); +} + +a { + color: hsl(var(--root-hue),50%,35%); + text-decoration: none; + font-variation-settings: 'wght' 400; + transition: font-variation-settings 200ms, color 150ms; +} + +a:hover { + color: hsl(var(--root-hue),75%,50%); + text-decoration: underline; + font-variation-settings: 'wght' 650; +} + +@media (prefers-color-scheme: dark) { + body { + color: hsl(var(--root-hue),40%,85%); + background-color: hsl(var(--root-hue),8%,15%); + } + + header { + color: hsl(var(--root-hue),90%,90%); + } + + a { + color: hsl(var(--root-hue),30%,60%) !important; + } + + a:hover { + color: hsl(var(--root-hue),70%,80%) !important; + } +} + +h1 { + font-variation-settings: 'wght' 900; + font-size: 2rem; + line-height: 1.2; +} + +section, aside, footer { + margin: 1.5rem auto; +} + +img { + margin: 1.5rem auto; +} + +@keyframes annoyingAnimation { + /* 0% { font-variation-settings: 'wght' 400; } */ + 50% { + font-variation-settings: 'wght' 650; + color: hsl(var(--root-hue),75%,50%); + + } + 100% { + font-variation-settings: 'wght' 400; + color: hsl(var(--root-hue),70%,35%); + } +} + +.animate { + font-size: 1.4rem; + font-variation-settings: 'wght' 400; + animation: annoyingAnimation 1s linear infinite; +} + +.center { + text-align: center; +} + +.rounded { + border-radius: var(--rounded-corner); +} + +.largeShadow { + --xTrans: 0px; + --yTrans: 7px; + --radius: 20px; + --spread: 3px; + --alpha: 0.3; + -webkit-box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha)); + -moz-box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha)); + box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha)); +} \ No newline at end of file diff --git a/app/static/styles/test.css b/app/static/styles/test.css new file mode 100644 index 0000000..722d491 --- /dev/null +++ b/app/static/styles/test.css @@ -0,0 +1,47 @@ +@import url("../resources/gnomecolors.css"); + +.button { + display: inline-block; + padding: 10px 20px; + font-size: 1.5rem; + font-variation-settings: 'wght' 420; /* heheh */ + color: rgba(0,0,0,0.75); + border-radius: var(--rounded-corner); + background-color: rgba(255, 255, 255, 0.4); + border: solid rgba(0, 0, 0, 0.75); + border-width: 2px; + -webkit-backdrop-filter: blur(15px) saturate(1.4) contrast(1.3); + backdrop-filter: blur(15px) saturate(1.4) contrast(1.3); + + -webkit-box-shadow: 0px 5px 15px 2px rgba(0,0,0,0.4); + box-shadow: 0px 5px 15px 2px rgba(0,0,0,0.4); + + transition: font-variation-settings 150ms, border-width 150ms; +} + +@media (prefers-color-scheme: dark) { + .button { + color: rgba(255,255,255,0.75); + background-color: rgba(0, 0, 0, 0.4); + border: solid rgba(255, 255, 255, 0.75); + } +} + + + +.button:hover { + border-width: 4px; + font-variation-settings: 'wght' 700; +} + +.container { + position: relative; + text-align: center; + } + +.contCenter { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} \ No newline at end of file diff --git a/app/templates/base.htm b/app/templates/base.htm new file mode 100644 index 0000000..3e6e7eb --- /dev/null +++ b/app/templates/base.htm @@ -0,0 +1,40 @@ + + + + + + + {% block title %}{% endblock %} + + + + + + + {% block extraHead %} + {% endblock %} + + + + + + + +
+

{% block header %}{% endblock %}

+
+ +
+ {% block content %} + {% endblock %} +
+ + + + \ No newline at end of file diff --git a/app/templates/code-calc.html b/app/templates/code-calc.html new file mode 100644 index 0000000..f95fb6f --- /dev/null +++ b/app/templates/code-calc.html @@ -0,0 +1,27 @@ +{% extends "base.htm" %} + +{% block header %}Renault code calculator{% endblock %} + +{% block content %} +

Well, not strictly just Renault. Should work for Citroen and Peugeot as well, probably some models of Dacia too.

+ + + + + + + + + + +
Security code:
Unlock code:
+ +

Security code is 4 characters long; one letter followed by three numbers, i.e. A123. It can be found on the label or + by pressing 1+6 on an unlocked radio. To enter unlock code, use buttons 1 through 4 on the radio.

+ + + + + + +{% endblock %} \ No newline at end of file diff --git a/app/templates/downloads.htm b/app/templates/downloads.htm new file mode 100644 index 0000000..d053226 --- /dev/null +++ b/app/templates/downloads.htm @@ -0,0 +1,27 @@ +{% extends "base.htm" %} + +{% block header %}Downloads{% endblock %} + +{% block extraHead %} + +{% endblock %} + + +{% block content %} + + + + + + + + + {% for user in users %} + + + + + {% endfor %} + +
FilenameSize
{{ user.name }}{{ user.size }}
+{% endblock %} \ No newline at end of file diff --git a/app/templates/index.html b/app/templates/index.html new file mode 100644 index 0000000..cf12d87 --- /dev/null +++ b/app/templates/index.html @@ -0,0 +1,30 @@ +{% extends "base.htm" %} + +{% block header %}drath{% endblock %} + +{% block content %} + +

Now it's a different hue each time you refresh :)

+ +GWAK + +
+ manga
+ movies
+ cloud
+ graphs
+ clio 3 service manual
+ renault radio unlock codes
+ subscribe to pewdiepie
+ + + +
+ +

Also running minecraft at mc.drath.fr (whitelisted) (modded) (real) (pregnant)

+
+
+ +{% endblock %} \ No newline at end of file diff --git a/app/templates/secret.html b/app/templates/secret.html new file mode 100644 index 0000000..5c4928d --- /dev/null +++ b/app/templates/secret.html @@ -0,0 +1,24 @@ +{% extends "base.htm" %} + +{% block header %}You're not really supposed to be here tbh.{% endblock %} + +{% block content %} +back to main page
+ + + +

+ It's just like a hub of useful links for me +

+ +
+ tests
+ downloads
+ google app
+ android settings
+ google cloud console
+ google domains + source code for this bs +
+ +{% endblock %} \ No newline at end of file diff --git a/app/templates/test.html b/app/templates/test.html new file mode 100644 index 0000000..049ecaf --- /dev/null +++ b/app/templates/test.html @@ -0,0 +1,30 @@ +{% extends "base.htm" %} + +{% block header %}Drath's testing grounds{% endblock %} + +{% block extraHead %} + + +{% endblock %} + + +{% block content %} + +
+ + +
click me
+
+ +
+ +

+ Hover effect looks a lil wobbly if the screen isn't hi-dpi enough. + The button is supposed to have a blurred background, doesn't work on Firefox.
+ IT WORKS ON FIREFOX
+ Firefox supports FINALLY backdrop-filter since version 103. +

+secrets +main page + +{% endblock %} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..af149e6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +Flask +waitress +python-dateutil +google-cloud-storage +Flask-Minify \ No newline at end of file