Fájl részletek
Ezen az oldalon egy konkrét fájl aktuális állapotát tudod megnézni.
Fájl útvonala
/opt/bots/saturnus/app/templates/exchange_detail.html
Aktuális státusz
MODIFIED
Módosítás ideje
1779868800.3331597
Korábbi baseline időpont
1775590888.8801856
Előnézet (első 120 sor)
{% extends "base.html" %}
{% block title %}Saturnus Bot – {{ (data.get('exchange') if data and data.get('exchange') else 'binance')|lower }}
<script>
(function(){
function forceBuyInactive(){
const inPosition = true;
if (!inPosition) return;
["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
const el = document.getElementById(id);
if (el) el.textContent = "Pozícióban vagyunk";
});
}
forceBuyInactive();
setTimeout(forceBuyInactive, 100);
setTimeout(forceBuyInactive, 500);
setTimeout(forceBuyInactive, 1000);
setInterval(forceBuyInactive, 300);
})();
</script>
{% endblock %}
{% block header %}Saturnus Bot
<script>
(function(){
function forceBuyInactive(){
const inPosition = true;
if (!inPosition) return;
["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
const el = document.getElementById(id);
if (el) el.textContent = "Pozícióban vagyunk";
});
}
forceBuyInactive();
setTimeout(forceBuyInactive, 100);
setTimeout(forceBuyInactive, 500);
setTimeout(forceBuyInactive, 1000);
setInterval(forceBuyInactive, 300);
})();
</script>
{% endblock %}
{% set _root = data if data is defined and data is not none else {} %}
{% set state = _root.get('state', _root) if _root is mapping else {} %}
{% set services = _root.get('services', {}) if _root is mapping else {} %}
{% set prices = (state.get('prices') or {}) %}
{% set market = (state.get('market') or {}) %}
{% set levels = (state.get('levels') or {}) %}
{% set decision = (state.get('decision') or {}) %}
{% set engine = (state.get('engine') or {}) %}
{% set thresholds = (decision.get('thresholds') or engine.get('thresholds') or {}) %}
{% set base = state.get('base') %}
{% set peak = state.get('peak') %}
{% set trough = state.get('trough') %}
{% set last = market.get('last') if market.get('last') is not none else state.get('last') %}
{% set prev_last = market.get('prev_last') if market.get('prev_last') is not none else state.get('prev_last') %}
{% set lowp = market.get('low') if market.get('low') is not none else prices.get('low') %}
{% set inpos = (state.get('in_position') if state.get('in_position') is not none else false) %}
{% block top_status %}
<div class="pill">
<span class="dot {{ 'ok' if inpos else 'bad' }}"></span>
<span class="mono muted" id="top-position-pill">pozíció: {{ 'VAN' if inpos else 'NINCS' }}</span>
</div>
<script>
(function(){
function forceBuyInactive(){
const inPosition = true;
if (!inPosition) return;
["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
const el = document.getElementById(id);
if (el) el.textContent = "Pozícióban vagyunk";
});
}
forceBuyInactive();
setTimeout(forceBuyInactive, 100);
setTimeout(forceBuyInactive, 500);
setTimeout(forceBuyInactive, 1000);
setInterval(forceBuyInactive, 300);
})();
</script>
{% endblock %}
{% block extra_css %}
.exchange-detail-grid{
display:grid;
grid-template-columns:repeat(12, minmax(0, 1fr));
gap:14px;
width:100%;
min-width:0;
}
.exchange-card{
grid-column:1 / -1;
min-width:0;
padding:14px;
border-radius:16px;
border:1px solid rgba(255,255,255,.08);
background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
box-shadow:0 12px 30px rgba(0,0,0,.35);
Csak változott diff sorok
--- baseline
+++ current
@@ -1,17 +1,67 @@
-{% block title %}Saturnus Bot – {{ (exchange or 'binance')|lower }}{% endblock %}
-{% block header %}Saturnus Bot{% endblock %}
+{% block title %}Saturnus Bot – {{ (data.get('exchange') if data and data.get('exchange') else 'binance')|lower }}
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
+{% endblock %}
+{% block header %}Saturnus Bot
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
+{% endblock %}
-{% set ft = _root.get('ft', {}) if _root is mapping else {} %}
-
-{% set prices = (state.get('prices') or {}) %}
-{% set market = (state.get('market') or {}) %}
-{% set levels = (state.get('levels') or {}) %}
-{% set decision = (state.get('decision') or {}) %}
+
+{% set prices = (state.get('prices') or {}) %}
+{% set market = (state.get('market') or {}) %}
+{% set levels = (state.get('levels') or {}) %}
+{% set decision = (state.get('decision') or {}) %}
+{% set engine = (state.get('engine') or {}) %}
+{% set thresholds = (decision.get('thresholds') or engine.get('thresholds') or {}) %}
+
@@ -22,28 +72,110 @@
- <span class="dot {{ 'good' if inpos else 'bad' }}"></span>
+ <span class="dot {{ 'ok' if inpos else 'bad' }}"></span>
+
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
-{% block content %}
-<style>
-.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}
-.card2{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;}
-.h{font-weight:800;margin-bottom:10px;}
-.excel{width:100%;border-collapse:collapse;margin-top:6px;}
-.excel td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:top;}
-.excel td:first-child{opacity:.75;width:320px;}
-.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:8px;}
-.dot.good{background:#37d67a;}
-.dot.bad{background:#888;}
-.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}
-.pill2{display:inline-block;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);font-size:12px;}
-.small-note{margin-top:10px;font-size:12px;opacity:.8;}
-.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
-.btnline{display:flex;gap:8px;flex-wrap:wrap;}
-button.svcbtn{
+{% block extra_css %}
+.exchange-detail-grid{
+ display:grid;
+ grid-template-columns:repeat(12, minmax(0, 1fr));
+ gap:14px;
+ width:100%;
+ min-width:0;
+}
+
+.exchange-card{
+ grid-column:1 / -1;
+ min-width:0;
+ padding:14px;
+ border-radius:16px;
+ border:1px solid rgba(255,255,255,.08);
+ background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
+ box-shadow:0 12px 30px rgba(0,0,0,.35);
+}
+
+.exchange-title{
+ font-weight:800;
+ margin-bottom:10px;
+}
+
+.exchange-table{
+ width:100%;
+ border-collapse:collapse;
+ margin-top:6px;
+}
+
+.exchange-table td{
+ padding:6px 8px;
+ border-bottom:1px solid rgba(255,255,255,.08);
+ vertical-align:top;
+}
+
+.exchange-table td:first-child{
+ opacity:.75;
+ width:320px;
+}
+
+.exchange-pill{
+ display:inline-block;
+ padding:4px 10px;
+ border-radius:999px;
+ border:1px solid rgba(255,255,255,.12);
+ background:rgba(255,255,255,.03);
+ font-size:12px;
+}
+
+.exchange-small-note{
+ margin-top:10px;
+ font-size:12px;
+ opacity:.8;
+}
+
+.exchange-inline-muted{
+ opacity:.75;
+ font-size:12px;
+}
+
+.exchange-controls{
+ display:flex;
+ flex-wrap:wrap;
+ gap:10px;
+ align-items:center;
+}
+
+.exchange-btnline{
+ display:flex;
+ gap:8px;
Teljes diff
--- baseline
+++ current
@@ -1,17 +1,67 @@
{% extends "base.html" %}
-{% block title %}Saturnus Bot – {{ (exchange or 'binance')|lower }}{% endblock %}
-{% block header %}Saturnus Bot{% endblock %}
+{% block title %}Saturnus Bot – {{ (data.get('exchange') if data and data.get('exchange') else 'binance')|lower }}
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
+{% endblock %}
+{% block header %}Saturnus Bot
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
+{% endblock %}
{% set _root = data if data is defined and data is not none else {} %}
{% set state = _root.get('state', _root) if _root is mapping else {} %}
{% set services = _root.get('services', {}) if _root is mapping else {} %}
-{% set ft = _root.get('ft', {}) if _root is mapping else {} %}
-
-{% set prices = (state.get('prices') or {}) %}
-{% set market = (state.get('market') or {}) %}
-{% set levels = (state.get('levels') or {}) %}
-{% set decision = (state.get('decision') or {}) %}
+
+{% set prices = (state.get('prices') or {}) %}
+{% set market = (state.get('market') or {}) %}
+{% set levels = (state.get('levels') or {}) %}
+{% set decision = (state.get('decision') or {}) %}
+{% set engine = (state.get('engine') or {}) %}
+{% set thresholds = (decision.get('thresholds') or engine.get('thresholds') or {}) %}
+
{% set base = state.get('base') %}
{% set peak = state.get('peak') %}
{% set trough = state.get('trough') %}
@@ -22,28 +72,110 @@
{% block top_status %}
<div class="pill">
- <span class="dot {{ 'good' if inpos else 'bad' }}"></span>
+ <span class="dot {{ 'ok' if inpos else 'bad' }}"></span>
<span class="mono muted" id="top-position-pill">pozíció: {{ 'VAN' if inpos else 'NINCS' }}</span>
</div>
+
+<script>
+(function(){
+ function forceBuyInactive(){
+ const inPosition = true;
+ if (!inPosition) return;
+
+ ["std_buy","recovery_buy","panic_buy","catastrophe_buy"].forEach(function(id){
+ const el = document.getElementById(id);
+ if (el) el.textContent = "Pozícióban vagyunk";
+ });
+ }
+
+ forceBuyInactive();
+ setTimeout(forceBuyInactive, 100);
+ setTimeout(forceBuyInactive, 500);
+ setTimeout(forceBuyInactive, 1000);
+ setInterval(forceBuyInactive, 300);
+})();
+</script>
+
+
+
+
{% endblock %}
-{% block content %}
-<style>
-.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}
-.card2{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;}
-.h{font-weight:800;margin-bottom:10px;}
-.excel{width:100%;border-collapse:collapse;margin-top:6px;}
-.excel td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:top;}
-.excel td:first-child{opacity:.75;width:320px;}
-.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:8px;}
-.dot.good{background:#37d67a;}
-.dot.bad{background:#888;}
-.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}
-.pill2{display:inline-block;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);font-size:12px;}
-.small-note{margin-top:10px;font-size:12px;opacity:.8;}
-.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
-.btnline{display:flex;gap:8px;flex-wrap:wrap;}
-button.svcbtn{
+{% block extra_css %}
+.exchange-detail-grid{
+ display:grid;
+ grid-template-columns:repeat(12, minmax(0, 1fr));
+ gap:14px;
+ width:100%;
+ min-width:0;
+}
+
+.exchange-card{
+ grid-column:1 / -1;
+ min-width:0;
+ padding:14px;
+ border-radius:16px;
+ border:1px solid rgba(255,255,255,.08);
+ background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
+ box-shadow:0 12px 30px rgba(0,0,0,.35);
+}
+
+.exchange-title{
+ font-weight:800;
+ margin-bottom:10px;
+}
+
+.exchange-table{
+ width:100%;
+ border-collapse:collapse;
+ margin-top:6px;
+}
+
+.exchange-table td{
+ padding:6px 8px;
+ border-bottom:1px solid rgba(255,255,255,.08);
+ vertical-align:top;
+}
+
+.exchange-table td:first-child{
+ opacity:.75;
+ width:320px;
+}
+
+.exchange-pill{
+ display:inline-block;
+ padding:4px 10px;
+ border-radius:999px;
+ border:1px solid rgba(255,255,255,.12);
+ background:rgba(255,255,255,.03);
+ font-size:12px;
+}
+
+.exchange-small-note{
+ margin-top:10px;
+ font-size:12px;
+ opacity:.8;
+}
+
+.exchange-inline-muted{
+ opacity:.75;
+ font-size:12px;
+}
+
+.exchange-controls{
+ display:flex;
+ flex-wrap:wrap;
+ gap:10px;
+ align-items:center;
+}
+
+.exchange-btnline{
+ display:flex;
+ gap:8px;
... [DIFF LEVÁGVA] további sorok: 1012