projects-jenz/jenz_ban_detector/python/app.py
2024-03-30 20:30:42 +01:00

52 lines
1.6 KiB
Python

#!/home/nonroot/receive_motd_requests/venv/bin/python3
from flask import Flask
from flask import request
from flask_cors import CORS
from time import sleep
from settings import token, get_connection_ban_detector
app = Flask(__name__)
CORS(app)
@app.route('/', methods = ['POST'])
def get_answer():
if request.remote_addr != "127.0.0.1":
return "invalid"
try:
content = request.form.get('name')
name = content.split(" ")[0]
ip = content.split(" ")[1]
#print(name, ip)
if name is None or ip is None:
return ""
except:
return ""
name = name.replace('"', '') #fingerprint
ip = ip.replace('"', '')
with get_connection_ban_detector() as conn:
with conn.cursor(buffered=True) as cur: #wtf is this buffered shit even
sql_statement = """
UPDATE ban_detector.ban_detector x
SET fingerprint = %s,
modified_on = now()
WHERE
x.ip = %s
and
x.last_connect = (select last_connect
from ban_detector.ban_detector x1
where
x1.ip = %s
order by last_connect desc limit 1);
"""
cur.execute(sql_statement, [name, ip, ip])
conn.commit()
conn.close()
print("comitting content: ", content)
return ""
if __name__ == "__main__":
from waitress import serve
serve(app, host="localhost", port=5085, threads = 8)