diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0719750 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +Include +Lib +Scripts +lib64 +lib +bin +include +*/__pycache__ +pyvenv.cfg \ No newline at end of file diff --git a/app/main.py b/app/main.py index ddb0d7e..e85811d 100644 --- a/app/main.py +++ b/app/main.py @@ -1,57 +1,33 @@ -from flask import Flask, render_template, current_app as this, Response -from google.cloud import storage -from flask_minify import Minify +from flask import Flask, render_template +import ping3 +# READ README YOU STUPID FUCK 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 +def isUp(host: str) -> bool: + return bool(ping3.ping(host, timeout = 1)) @app.route('/') def main(): - return render_template("index.html") + url = "drath.cc" + links = ["isheatwork", "manga", "cloud", "movies"] + return render_template('index.html.j2', links=sorted(links), url=url) -@app.route('/codecalc') -def calc(): - return render_template("code-calc.html") +@app.route('/status/funbox') +def funbox(): + return str(isUp("192.168.1.1")) -@app.route('/secret') -def secret(): - imgUrl = "/static/images/kroniicopter.webp" - return render_template("secret.html", imgUrl = imgUrl) +@app.route('/status/proxmox') +def proxmox(): + return str(isUp("10.0.1.2")) -@app.route('/tests') -def test(): - return render_template("test.html") - -@app.route('/downloads') -def dload(): - return render_template("downloads.htm", users = getDownloads("drath-public")) +@app.route('/status/opnsense') +def opnsense(): + return str(isUp("10.0.1.1")) +@app.route('/status/server') +def server(): + return str(isUp("10.0.1.200")) 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 deleted file mode 100644 index 13b4c75..0000000 Binary files a/app/static/fonts/Cantarell-VF.otf and /dev/null differ diff --git a/app/static/fonts/Cantarell-VF.woff2 b/app/static/fonts/Cantarell-VF.woff2 deleted file mode 100644 index 5360548..0000000 Binary files a/app/static/fonts/Cantarell-VF.woff2 and /dev/null differ diff --git a/app/static/fonts/DejaVuSerif-Bold-webfont.woff b/app/static/fonts/DejaVuSerif-Bold-webfont.woff deleted file mode 100644 index 8a18d59..0000000 Binary files a/app/static/fonts/DejaVuSerif-Bold-webfont.woff and /dev/null differ diff --git a/app/static/fonts/DejaVuSerif-webfont.woff b/app/static/fonts/DejaVuSerif-webfont.woff deleted file mode 100644 index 886b8c6..0000000 Binary files a/app/static/fonts/DejaVuSerif-webfont.woff and /dev/null differ diff --git a/app/static/images/stocking.png b/app/static/images/stocking.png deleted file mode 100644 index b7798c6..0000000 Binary files a/app/static/images/stocking.png and /dev/null differ diff --git a/app/static/scripts/downloadsTable.js b/app/static/scripts/downloadsTable.js deleted file mode 100644 index 824c2d7..0000000 --- a/app/static/scripts/downloadsTable.js +++ /dev/null @@ -1,40 +0,0 @@ -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 deleted file mode 100644 index 29757f9..0000000 --- a/app/static/scripts/randImage.js +++ /dev/null @@ -1,31 +0,0 @@ - -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 deleted file mode 100644 index ce0d940..0000000 --- a/app/static/scripts/renault-calculator.js +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 71dbac2..0000000 --- a/app/static/scripts/service-worker.js +++ /dev/null @@ -1,25 +0,0 @@ -// 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 deleted file mode 100644 index 1ecc159..0000000 --- a/app/static/styles/downloads.css +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index e0e46db..0000000 --- a/app/static/styles/fonts.css +++ /dev/null @@ -1,20 +0,0 @@ -@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 deleted file mode 100644 index 71a780c..0000000 --- a/app/static/styles/gnomecolors.css +++ /dev/null @@ -1,51 +0,0 @@ -: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 deleted file mode 100644 index 2f65dc6..0000000 --- a/app/static/styles/style.css +++ /dev/null @@ -1,102 +0,0 @@ -: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 deleted file mode 100644 index 722d491..0000000 --- a/app/static/styles/test.css +++ /dev/null @@ -1,47 +0,0 @@ -@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 deleted file mode 100644 index 3e6e7eb..0000000 --- a/app/templates/base.htm +++ /dev/null @@ -1,40 +0,0 @@ - - - -
- - -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 deleted file mode 100644 index d053226..0000000 --- a/app/templates/downloads.htm +++ /dev/null @@ -1,27 +0,0 @@ -{% extends "base.htm" %} - -{% block header %}Downloads{% endblock %} - -{% block extraHead %} - -{% endblock %} - - -{% block content %} -| Filename | -Size | -
|---|---|
| {{ user.name }} | -{{ user.size }} | -
Now it's a different hue each time you refresh :)
- -
-
-- It's just like a hub of useful links for 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.
-