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)
 | 
						|
 |