From 3d0bfeac130356829f2c084695dd2fa1a530ef34 Mon Sep 17 00:00:00 2001 From: Stephen Cochrane Date: Thu, 11 Feb 2021 16:03:59 +0200 Subject: [PATCH] Basic api working --- .gitignore | 1 + api.sh | 5 +++++ assets/api_deps.txt | 1 + src/main.py | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100755 api.sh create mode 100644 assets/api_deps.txt create mode 100644 src/main.py diff --git a/.gitignore b/.gitignore index 6c59ed9..04cb8b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.swp +__pycache__ index.html site/ bin/ diff --git a/api.sh b/api.sh new file mode 100755 index 0000000..268c95b --- /dev/null +++ b/api.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -B +export FLASK_APP=./src/main.py +pip3 install --user -r ./assets/api_deps.txt +python3 -m flask run --host=0.0.0.0 --port=8199 diff --git a/assets/api_deps.txt b/assets/api_deps.txt new file mode 100644 index 0000000..7e10602 --- /dev/null +++ b/assets/api_deps.txt @@ -0,0 +1 @@ +flask diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..ff2e1bb --- /dev/null +++ b/src/main.py @@ -0,0 +1,33 @@ +# Needed libs +from flask import Flask, render_template, request, jsonify +from hashlib import sha256 +from datetime import datetime +import os +# My libs + +main_domain = 'skiqqy.xyz' +domains = ['git', 'irc', 'proj', 'blog', 'pay', 'wiki', 'files', 'social', 'music', 'dev'] # TODO: Save this in file to reduce coupling with dns.py + +app = Flask(__name__) + +@app.route('/') +def main(): + return render_template('index.html') + +@app.route('/domain/status/', methods = ["GET"]) +def domstatus(dom): + if dom == 'all': + dom = '' + for sub in domains: + ip = os.popen('ping -c 1 -w 5 %s.%s | head -1 | cut -d \" \" -f 3' % (sub, main_domain)).read() + dom += sub + ':' + ip + '\n' + elif dom not in domains: + dom = "unknown domain" + else: + dom += ':' + str(os.popen('ping -c 1 -w 5 %s.%s | head -1 | cut -d \" \" -f 3' % (dom, main_domain)).read()) + return dom + +def setup(): + app.template_folder = "../assets/api_templates/" + +setup()