stock/new/app.py
2025-08-15 12:19:07 +02:00

62 lines
1.7 KiB
Python

from __future__ import annotations
import os, json, threading
from flask import Flask, jsonify, render_template, abort
from trading_bot import main as trading_bot_main # zakładam, że tak nazywasz plik
DATA_DIR = os.environ.get("DATA_DIR", ".")
def _load_json(name: str):
path = os.path.join(DATA_DIR, name)
if not os.path.isfile(path):
return None
with open(path, "r", encoding="utf-8") as f:
try:
return json.load(f)
except Exception:
return None
app = Flask(
__name__,
static_folder="static",
static_url_path="/static",
template_folder="templates"
)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/api/snapshot")
def api_snapshot():
data = _load_json("snapshot.json")
if data is None: abort(404, "snapshot.json not found")
return jsonify(data)
@app.route("/api/history")
def api_history():
data = _load_json("portfolio_history.json")
if data is None: abort(404, "portfolio_history.json not found")
return jsonify(data)
@app.route("/api/positions")
def api_positions():
data = _load_json("positions.json")
if data is None: data = []
return jsonify(data)
@app.route("/api/trades")
def api_trades():
data = _load_json("trade_log.json")
if data is None: data = []
return jsonify(data)
def start_trading_bot():
"""Uruchamia bota w osobnym wątku."""
trading_thread = threading.Thread(target=trading_bot_main, daemon=True)
trading_thread.start()
print("[Flask] Trading bot uruchomiony w wątku.")
if __name__ == "__main__":
start_trading_bot()
app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)), debug=True)