🚀 Auto-deploy: BotVPS atualizado em 24/03/2026 10:23:43
This commit is contained in:
@@ -17,8 +17,8 @@ def get_config():
|
|||||||
# Configuração Padrão
|
# Configuração Padrão
|
||||||
return {
|
return {
|
||||||
"active_provider": "gemini",
|
"active_provider": "gemini",
|
||||||
"gemini_api_key": "",
|
"gemini_api_key": "AIzaSyA-YHI7CDp7bAZz-2U9IRjzMrmzhAM7zkA",
|
||||||
"web_password": "@@Gi05Br;;"
|
"web_password": "1234"
|
||||||
}
|
}
|
||||||
|
|
||||||
def save_config(cfg):
|
def save_config(cfg):
|
||||||
|
|||||||
@@ -582,28 +582,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Login Overlay */
|
#login-overlay { display: none !important; opacity: 0; pointer-events: none; }
|
||||||
#login-overlay {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: var(--bg-base);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
z-index: 2000;
|
|
||||||
-webkit-backdrop-filter: blur(20px);
|
|
||||||
backdrop-filter: blur(20px);
|
|
||||||
transition: opacity 0.5s ease, visibility 0.5s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#login-overlay.hidden {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#login-overlay { display: none !important; }
|
|
||||||
|
|
||||||
.login-card {
|
.login-card {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
@@ -670,20 +649,7 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="login-overlay">
|
<!-- Login Suspenso -->
|
||||||
<div class="card login-card">
|
|
||||||
<div class="login-icon" role="img" aria-label="Cadeado de Segurança">🔒</div>
|
|
||||||
<h2 class="login-title">Acesso Restrito</h2>
|
|
||||||
<p class="login-desc">Esta VPS está protegida. Insira a senha mestra para gerenciar o Agente.</p>
|
|
||||||
<input type="password" id="web-pass-input" aria-label="Senha da VPS" autocomplete="current-password"
|
|
||||||
class="form-input login-input" placeholder="Senha da VPS"
|
|
||||||
onkeypress="if(event.key==='Enter') attemptLogin()">
|
|
||||||
<button type="button" class="btn btn-primary w-full" style="padding: 0.8rem;"
|
|
||||||
onclick="attemptLogin()">Entrar no Dashboard</button>
|
|
||||||
<div id="login-error" style="color:var(--danger); font-size: 0.75rem; margin-top: 1rem; display: none;">
|
|
||||||
Senha incorreta. Tente novamente.</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<header>
|
<header>
|
||||||
@@ -952,7 +918,7 @@
|
|||||||
<div id="toast">Ação executada!</div>
|
<div id="toast">Ação executada!</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
let webPassword = localStorage.getItem('vps_web_password') || '';
|
let webPassword = '1234'; // Senha padrão suspensa
|
||||||
let chatHistory = []; // Memória da conversa na Web
|
let chatHistory = []; // Memória da conversa na Web
|
||||||
|
|
||||||
// Helper para chamadas de API com autenticação
|
// Helper para chamadas de API com autenticação
|
||||||
@@ -961,10 +927,6 @@
|
|||||||
options.headers['X-Web-Password'] = webPassword;
|
options.headers['X-Web-Password'] = webPassword;
|
||||||
|
|
||||||
const res = await fetch(url, options);
|
const res = await fetch(url, options);
|
||||||
if (res.status === 401) {
|
|
||||||
showLoginOverlay();
|
|
||||||
throw new Error("Não autorizado");
|
|
||||||
}
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user