118 lines
4.5 KiB
Bash
Executable File
118 lines
4.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
echo "=============================================="
|
|
echo " Jogo3 - Sistema Automático de Ordens"
|
|
echo "=============================================="
|
|
|
|
# ─── Verificar .env ───────────────────────────────────────────────────────────
|
|
if [ ! -f .env ]; then
|
|
echo "[!] Arquivo .env não encontrado."
|
|
echo " Copie e configure: cp .env.example .env"
|
|
exit 1
|
|
fi
|
|
|
|
# ─── Extrair valores do .env com grep (evita problemas com source) ───────────
|
|
grep_val() {
|
|
local var="$1"
|
|
grep -E "^${var}=" .env 2>/dev/null | head -1 | cut -d '=' -f2- | xargs || echo ""
|
|
}
|
|
|
|
TELEGRAM_TOKEN=$(grep_val TELEGRAM_TOKEN)
|
|
TELEGRAM_CHAT_ID=$(grep_val TELEGRAM_CHAT_ID)
|
|
SEXO=$(grep_val SEXO)
|
|
IDADE=$(grep_val IDADE)
|
|
HORA_INICIO=$(grep_val HORA_INICIO)
|
|
HORA_FIM=$(grep_val HORA_FIM)
|
|
|
|
# Configuração de cada envio automático
|
|
declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE
|
|
for n in 1 2 3 4 5 6 7 8; do
|
|
ENVIAR_ATIVO[$n]=$(grep_val "ENVIAR${n}_ATIVO")
|
|
ENVIAR_INTERVALO[$n]=$(grep_val "ENVIAR${n}_INTERVALO_MINUTOS")
|
|
ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS")
|
|
ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS")
|
|
done
|
|
|
|
if [ -z "$TELEGRAM_TOKEN" ] || [ "$TELEGRAM_TOKEN" = "seu_token_aqui" ]; then
|
|
echo "[!] TELEGRAM_TOKEN não configurado no .env"
|
|
exit 1
|
|
fi
|
|
if [ -z "$TELEGRAM_CHAT_ID" ] || [ "$TELEGRAM_CHAT_ID" = "seu_chat_id_aqui" ]; then
|
|
echo "[!] TELEGRAM_CHAT_ID não configurado no .env"
|
|
exit 1
|
|
fi
|
|
|
|
# Validação dos arquivos de ordens
|
|
for n in 1 2 3 4 5 6 7 8; do
|
|
if [ "${ENVIAR_ATIVO[$n]}" = "s" ] && [ ! -f "${ENVIAR_ARQUIVO[$n]}" ]; then
|
|
echo "[!] Arquivo de ordens '${ENVIAR_ARQUIVO[$n]}' não encontrado (envio automático $n)"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE HORA_INICIO HORA_FIM
|
|
for n in 1 2 3 4 5 6 7 8; do
|
|
export "ENVIAR${n}_ATIVO=${ENVIAR_ATIVO[$n]}"
|
|
export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}"
|
|
export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}"
|
|
export "ENVIAR${n}_QUANTIDADE_ORDENS=${ENVIAR_QUANTIDADE[$n]}"
|
|
done
|
|
|
|
# ─── Python virtual env ──────────────────────────────────────────────────────
|
|
if [ ! -d venv ]; then
|
|
echo "[+] Criando ambiente virtual Python 3..."
|
|
python3 -m venv venv
|
|
fi
|
|
|
|
echo "[+] Ativando ambiente virtual..."
|
|
source venv/bin/activate
|
|
|
|
# ─── Dependências ──────────────────────────────────────────────────────────────
|
|
echo "[+] Instalando dependências..."
|
|
pip install --upgrade pip -q
|
|
pip install -r requirements.txt -q
|
|
|
|
# ─── Ativar /start do bot ────────────────────────────────────────────────────
|
|
echo "[+] Ativando /start no bot do Telegram..."
|
|
python3 << 'PYEOF'
|
|
import asyncio
|
|
import os
|
|
from telegram import Bot
|
|
|
|
async def start():
|
|
bot = Bot(token=os.environ['TELEGRAM_TOKEN'])
|
|
await bot.send_message(
|
|
chat_id=os.environ['TELEGRAM_CHAT_ID'],
|
|
text='Sistema de ordens iniciado!\n\nO bot esta online e comecara a enviar ordens em breve.'
|
|
)
|
|
print('[+] /start enviado com sucesso!')
|
|
|
|
asyncio.run(start())
|
|
PYEOF
|
|
|
|
# ─── Rodar o programa ─────────────────────────────────────────────────────────
|
|
echo "[+] Iniciando sistema de ordens..."
|
|
echo " Sexo: ${SEXO:-masculino} | Idade: ${IDADE:-30}"
|
|
echo " Horário: ${HORA_INICIO:-08:00} - ${HORA_FIM:-22:00}"
|
|
echo ""
|
|
for n in 1 2 3 4 5 6 7 8; do
|
|
status="❌ DESATIVADO"
|
|
if [ "${ENVIAR_ATIVO[$n]}" = "s" ]; then
|
|
status="✅ ATIVO"
|
|
fi
|
|
qtd_info="sem limite"
|
|
if [ "${ENVIAR_QUANTIDADE[$n]}" -gt 0 ] 2>/dev/null; then
|
|
qtd_info="${ENVIAR_QUANTIDADE[$n]} ordens"
|
|
fi
|
|
echo " Envio Automático $n: $status"
|
|
echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}"
|
|
done
|
|
echo ""
|
|
echo "Pressione Ctrl+C para parar."
|
|
echo "----------------------------------------------"
|
|
|
|
python3 main.py |