adding support for playerlist info
This commit is contained in:
@@ -2,5 +2,6 @@ flask
|
||||
flask_cors
|
||||
waitress
|
||||
werkzeug
|
||||
python-a2s
|
||||
|
||||
python app.py
|
||||
|
||||
+34
-13
@@ -1,17 +1,37 @@
|
||||
#!/home/nonroot/update_xenforo_server_info/venv/bin/python3
|
||||
from flask import Flask
|
||||
from flask import request
|
||||
from flask_cors import CORS
|
||||
from werkzeug.middleware.proxy_fix import ProxyFix
|
||||
import traceback
|
||||
import json
|
||||
from pprint import pprint
|
||||
from settings import ips, file_path
|
||||
|
||||
app = Flask(__name__)
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1)
|
||||
#!/home/nonroot/update_xenforo_server_info/venv/bin/python3
|
||||
from flask import Flask
|
||||
from flask import request
|
||||
from flask_cors import CORS
|
||||
from werkzeug.middleware.proxy_fix import ProxyFix
|
||||
import traceback
|
||||
import json
|
||||
from pprint import pprint
|
||||
import a2s
|
||||
from settings import ips, file_path
|
||||
|
||||
app = Flask(__name__)
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1)
|
||||
CORS(app)
|
||||
|
||||
#AI slop
|
||||
def get_player_list(ip, port):
|
||||
address = (ip, int(port))
|
||||
try:
|
||||
# Get player information
|
||||
players = a2s.players(address)
|
||||
|
||||
player_data = []
|
||||
for p in players:
|
||||
player_data.append({
|
||||
"name": p.name,
|
||||
"score": p.score,
|
||||
"duration": p.duration # Seconds they've been online
|
||||
})
|
||||
return player_data
|
||||
except Exception as e:
|
||||
print(f"Error querying server: {e}")
|
||||
return []
|
||||
|
||||
#nginx used for reserve proxy
|
||||
@app.route('/', methods = ['POST'])
|
||||
def get_server_info():
|
||||
@@ -30,7 +50,8 @@ def get_server_info():
|
||||
map_ = server.split("**")[1].split(" ")[0]
|
||||
players = server.split("(")[1].split(")")[0]
|
||||
ip = server.split("\n[")[1].split("]")[0]
|
||||
j = {"name": name, "map": map_, "players": players, "ip": ip}
|
||||
d = get_player_list(ip.split(":")[0], ip.split(":")[1])
|
||||
j = {"name": name, "map": map_, "players": players, "ip": ip, "player_infos": d}
|
||||
new_j.append(j)
|
||||
|
||||
#print(new_j)
|
||||
|
||||
Reference in New Issue
Block a user