sploit for arena-battle
build-and-push / detect (push) Successful in 10s
build-and-push / build (${{ fromJSON(needs.detect.outputs.services) }}) (push) Successful in 51s

This commit is contained in:
2026-08-26 11:29:05 +03:00
parent 593500424a
commit 5d765a09db
1436 changed files with 539800 additions and 14 deletions
@@ -0,0 +1,6 @@
FROM python:3.9-alpine
WORKDIR /app
ADD requirements.txt .
RUN pip3 install -r requirements.txt
ADD database.py .
ENTRYPOINT ["python3", "database.py"]
@@ -0,0 +1,53 @@
#!/usr/bin/python3
from flask import Flask, make_response, request
import os
import json
from pathlib import Path
app = Flask(__name__)
database_node_port = 5002
basic_path = "./files/db"
@app.route('/users/<string:username>/<string:field>', methods=["GET", "POST"])
def users(username, field):
path = basic_path + "/users/" + username
if request.method == 'GET':
if not os.path.exists(path):
return make_response({"status": "user_not_found"}, 404)
with open(path, "r") as f:
data = json.loads(f.read())
if field not in data:
return make_response({"status": "field_not_found"}, 404)
return make_response({"status": "ok", "data": data[field]}, 200)
elif request.method == "POST":
if not os.path.exists(path):
Path(path).touch()
with open(path, "r+") as f:
try:
data = json.loads(f.read())
except json.JSONDecodeError:
data = {}
data[field] = request.json["value"]
with open(path, "w") as f:
f.write(json.dumps(data))
return make_response({"status": "ok"}, 200)
@app.route('/images/<string:id>', methods=["GET", "POST"])
def images(id):
path = basic_path + "/images/" + id.zfill(2)
if request.method == 'GET':
with open(path, "r") as f:
data = json.loads(f.read())
return make_response({"status": "ok", "data": data}, 200)
elif request.method == "POST":
with open(path, "r+") as f:
data = json.loads(f.read())
data["comments"].append(request.json["value"])
with open(path, "w") as f:
f.write(json.dumps(data))
return make_response({"status": "ok"}, 200)
if __name__ == '__main__':
app.run(host="0.0.0.0", port=database_node_port)
@@ -0,0 +1,3 @@
flask==2.0.2
requests
Werkzeug==2.2.2