Wipe branch
This commit is contained in:
107
webserver.py
Normal file
107
webserver.py
Normal file
@@ -0,0 +1,107 @@
|
||||
from flask import Flask, send_file, request
|
||||
from time import sleep
|
||||
from werkzeug.serving import make_server
|
||||
from threading import Thread
|
||||
from mysql.connector import connect, Error
|
||||
from macros import *
|
||||
import os, json, config, requests, logging
|
||||
|
||||
|
||||
class WSThread(Thread):
|
||||
app = Flask(__name__)
|
||||
conn = None
|
||||
|
||||
def __init__(self, event):
|
||||
super(WSThread, self).__init__()
|
||||
self.event = event
|
||||
|
||||
log = logging.getLogger('werkzeug')
|
||||
log.disabled = True
|
||||
|
||||
|
||||
@app.route('/')
|
||||
@app.route('/index')
|
||||
def index():
|
||||
return '<meta charset="UTF-8"><script defer src="/index.js"></script>'
|
||||
|
||||
|
||||
@app.route('/index.js')
|
||||
def indexjs():
|
||||
return send_file('index.js')
|
||||
|
||||
|
||||
@app.route('/curstatus.json')
|
||||
def curstatus():
|
||||
j = {}
|
||||
j['info'] = {}
|
||||
j['info']['asics'] = {}
|
||||
|
||||
return json.dumps(j), 200, {'ContentType':'application/json'}
|
||||
|
||||
|
||||
def dbinit(self):
|
||||
with self.conn.cursor() as c:
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS `ips` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`ip` VARCHAR(64) NOT NULL,
|
||||
`location` VARCHAR(64) NOT NULL
|
||||
)
|
||||
""")
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS `laststate` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`ip` VARCHAR(64) NOT NULL,
|
||||
`mac` VARCHAR(32) NOT NULL,
|
||||
`type` INT(11) NOT NULL,
|
||||
`location` VARCHAR(64) NOT NULL,
|
||||
`status` VARCHAR(32) NOT NULL,
|
||||
`time` INT(11) NOT NULL
|
||||
)
|
||||
""")
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS `asiclogs` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`ip` VARCHAR(64) NOT NULL,
|
||||
`mac` VARCHAR(64) NOT NULL,
|
||||
`type` VARCHAR(64) NOT NULL,
|
||||
`time` INT(11) NOT NULL,
|
||||
`log` TEXT NOT NULL
|
||||
)
|
||||
""")
|
||||
|
||||
self.conn.commit()
|
||||
|
||||
|
||||
def runweb(self):
|
||||
self.server = make_server('0.0.0.0', CONF.get('port'), self.app)
|
||||
self.server.serve_forever()
|
||||
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
with connect(host=CONF.get('db', 'host'), user=CONF.get('db', 'user'), password=CONF.get('db', 'password')) as conn:
|
||||
with conn.cursor() as c:
|
||||
c.execute(f"CREATE DATABASE IF NOT EXISTS {CONF.get('db', 'name')}")
|
||||
|
||||
self.conn = connect(
|
||||
host=CONF.get('db', 'host'),
|
||||
user=CONF.get('db', 'user'),
|
||||
password=CONF.get('db', 'password'),
|
||||
database=CONF.get('db', 'name'))
|
||||
self.dbinit()
|
||||
|
||||
web = Thread(target=self.runweb)
|
||||
web.daemon = True
|
||||
web.start()
|
||||
|
||||
SUCC(f"Web interface started at port {CONF.get('port')}!")
|
||||
|
||||
while not self.event.is_set():
|
||||
sleep(1)
|
||||
|
||||
SUCC(f"Web server stopped!")
|
||||
self.server.shutdown()
|
||||
except Exception as e:
|
||||
CRIT(str(e))
|
||||
os._exit(1)
|
||||
Reference in New Issue
Block a user