52 lines
1.6 KiB
Python
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)
|
|
|