Ezen az oldalon egy konkrét fájl aktuális állapotát tudod megnézni.
Előnézet (első 120 sor)
<!doctype html>
<html lang="hu">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>{% block title %}Saturnus Bot{% endblock %}</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
<style>
:root{
--bg:#0b1220;
--panel:#101b33;
--panel2:#0f1a30;
--text:#e7eefc;
--muted:#9db0d1;
--line:rgba(255,255,255,.08);
--good:#39d98a;
--bad:#ff5c5c;
--warn:#ffcc66;
--chip:#0c1730;
--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
--shadow: 0 12px 30px rgba(0,0,0,.35);
--radius: 16px;
}
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
margin:0;
font-family:var(--sans);
background:
radial-gradient(1200px 600px at 20% 0%, rgba(57,217,138,.08), transparent 60%),
radial-gradient(1200px 600px at 80% 20%, rgba(122,92,255,.10), transparent 55%),
var(--bg);
color:var(--text);
}
a{ color:inherit; text-decoration:none; }
.wrap{
max-width:1100px;
margin:0 auto;
padding:18px 16px 28px;
}
.topbar{
display:flex;
gap:12px;
align-items:center;
justify-content:space-between;
padding:12px 14px;
border:1px solid var(--line);
border-radius: var(--radius);
background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
box-shadow: var(--shadow);
flex-wrap:wrap;
}
.brand{
display:flex;
flex-direction:column;
gap:2px;
min-width:0;
}
.brand .h{
font-size:16px;
font-weight:700;
letter-spacing:.2px;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.brand .s{
font-size:12px;
color:var(--muted);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.pill{
display:inline-flex;
align-items:center;
gap:8px;
padding:6px 10px;
border-radius:999px;
border:1px solid rgba(255,255,255,.12);
background: rgba(255,255,255,.04);
font-size:12px;
white-space:nowrap;
}
.dot{
width:10px;
height:10px;
border-radius:50%;
background:#2c5d5d;
display:inline-block;
}
.dot.ok{ background: var(--good); }
.dot.bad{ background: var(--bad); }
.dot.warn{ background: var(--warn); }
.dot.gray{ background: rgba(157,176,209,.55); }
.grid{
margin-top:14px;
display:grid;
grid-template-columns: 1fr;
gap:14px;
}
.card{
padding:14px 14px;
border-radius: var(--radius);
border:1px solid var(--line);
background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
Csak változott diff sorok
--- baseline
+++ current
@@ -237,6 +237,7 @@
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.3/dist/chart.umd.min.js"></script>
@@ -261,18 +262,7 @@
- <a href="/health">Health</a>
- <a href="/api/state">API State</a>
- <a href="/api/settings">API Settings</a>
-
- <form method="post" action="/ui/control/start" style="margin:0; display:inline;">
- <button class="btn btn-good" type="submit">Start</button>
- </form>
-
- <form method="post" action="/ui/control/stop" style="margin:0; display:inline;">
- <button class="btn btn-bad" type="submit">Stop</button>
- </form>
@@ -412,17 +402,19 @@
-
+
+ const profitlessSell = f(levels.profitless_sell);
-
+
+ const profitlessBuy = f(levels.profitless_buy);
-
+
+ const notEnoughRise = !!(data.not_enough_rise ?? flags.not_enough_rise);
-
@@ -556,5 +548,40 @@
+
+<script>
+(function(){
+ function cleanupSaturnusHeader(){
+ const hideLabels = [
+ "Alert zóna",
+ "Legközelebbi trigger",
+ "Következő lépés"
+ ];
+
+ document.querySelectorAll(".global-decision-k").forEach(function(el){
+ const txt = (el.textContent || "").trim();
+ if (hideLabels.includes(txt)) {
+ const box = el.closest("div");
+ if (box && box.parentElement) {
+ box.parentElement.style.display = "none";
+ }
+ }
+ });
+
+ document.querySelectorAll("*").forEach(function(el){
+ if (!el.children.length && el.textContent) {
+ el.textContent = el.textContent
+ .replace(/ALERT ZÓNA\s*\([^)]*\)/g, "")
+ .replace(/VÁR:\s*PANIC SELL[^<]*/g, "")
+ .replace(/PANIC_SELL\s*\([^)]*\)/g, "");
+ }
+ });
+ }
+
+ document.addEventListener("DOMContentLoaded", cleanupSaturnusHeader);
+ setInterval(cleanupSaturnusHeader, 2000);
+})();
+</script>
+
Teljes diff
--- baseline
+++ current
@@ -237,6 +237,7 @@
{% block extra_css %}{% endblock %}
</style>
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.3/dist/chart.umd.min.js"></script>
{% block extra_head %}{% endblock %}
</head>
@@ -261,18 +262,7 @@
<a href="/settings">Beállítások</a>
<a href="/naplo/">Monitor</a>
<a href="/naplo/elemzes">Stratégia-labor</a>
- <a href="/health">Health</a>
- <a href="/api/state">API State</a>
- <a href="/api/settings">API Settings</a>
</div>
-
- <form method="post" action="/ui/control/start" style="margin:0; display:inline;">
- <button class="btn btn-good" type="submit">Start</button>
- </form>
-
- <form method="post" action="/ui/control/stop" style="margin:0; display:inline;">
- <button class="btn btn-bad" type="submit">Stop</button>
- </form>
{% block header_right %}{% endblock %}
</div>
@@ -412,17 +402,19 @@
const rising = (last !== null && prevLast !== null) ? (last > prevLast) : false;
const base = f(data.base);
-
+
const stdSell = f(levels.std_sell);
+ const profitlessSell = f(levels.profitless_sell);
const panicSell = f(levels.panic_sell);
-
+
const stdBuy = f(levels.std_buy);
+ const profitlessBuy = f(levels.profitless_buy);
const panicBuy = f(levels.panic_buy);
-
+
const hadEnoughRise = !!(data.had_enough_rise ?? flags.had_enough_rise);
+ const notEnoughRise = !!(data.not_enough_rise ?? flags.not_enough_rise);
const hadEnoughDrop = !!(data.had_enough_drop ?? flags.had_enough_drop);
const notEnoughDrop = !!(data.not_enough_drop ?? flags.not_enough_drop);
-
let mode = inPosition ? "SELL oldal (pozíció van)" : "BUY oldal (pozíció nincs)";
let currentDecision = String(data.decision_reason || data.reason || "—");
@@ -556,5 +548,40 @@
+
+<script>
+(function(){
+ function cleanupSaturnusHeader(){
+ const hideLabels = [
+ "Alert zóna",
+ "Legközelebbi trigger",
+ "Következő lépés"
+ ];
+
+ document.querySelectorAll(".global-decision-k").forEach(function(el){
+ const txt = (el.textContent || "").trim();
+ if (hideLabels.includes(txt)) {
+ const box = el.closest("div");
+ if (box && box.parentElement) {
+ box.parentElement.style.display = "none";
+ }
+ }
+ });
+
+ document.querySelectorAll("*").forEach(function(el){
+ if (!el.children.length && el.textContent) {
+ el.textContent = el.textContent
+ .replace(/ALERT ZÓNA\s*\([^)]*\)/g, "")
+ .replace(/VÁR:\s*PANIC SELL[^<]*/g, "")
+ .replace(/PANIC_SELL\s*\([^)]*\)/g, "");
+ }
+ });
+ }
+
+ document.addEventListener("DOMContentLoaded", cleanupSaturnusHeader);
+ setInterval(cleanupSaturnusHeader, 2000);
+})();
+</script>
+
</body>
</html>