This commit is contained in:
2026-10-10 08:17:15 -03:00
parent 082cc680ab
commit fa5e0fa156
5 changed files with 72 additions and 29 deletions
+25 -6
View File
@@ -11,73 +11,92 @@ ENVIAR1_ATIVO=n
ENVIAR1_INTERVALO_MINUTOS=1 ENVIAR1_INTERVALO_MINUTOS=1
ENVIAR1_ARQUIVO_ORDENS=ordens1.json ENVIAR1_ARQUIVO_ORDENS=ordens1.json
ENVIAR1_QUANTIDADE_ORDENS=2 ENVIAR1_QUANTIDADE_ORDENS=2
ENVIAR1_HORA_INICIO=08:00
ENVIAR1_HORA_FIM=22:00
# ═══ Envio Automático 2 ═════════════════════════════════════════════ # ═══ Envio Automático 2 ═════════════════════════════════════════════
ENVIAR2_ATIVO=n ENVIAR2_ATIVO=n
ENVIAR2_INTERVALO_MINUTOS=1 ENVIAR2_INTERVALO_MINUTOS=1
ENVIAR2_ARQUIVO_ORDENS=ordens2.json ENVIAR2_ARQUIVO_ORDENS=ordens2.json
ENVIAR2_QUANTIDADE_ORDENS=2 ENVIAR2_QUANTIDADE_ORDENS=2
ENVIAR2_HORA_INICIO=08:00
ENVIAR2_HORA_FIM=22:00
# ═══ Envio Automático 3 ═════════════════════════════════════════════ # ═══ Envio Automático 3 ═════════════════════════════════════════════
ENVIAR3_ATIVO=n ENVIAR3_ATIVO=n
ENVIAR3_INTERVALO_MINUTOS=1 ENVIAR3_INTERVALO_MINUTOS=1
ENVIAR3_ARQUIVO_ORDENS=ordens3.json ENVIAR3_ARQUIVO_ORDENS=ordens3.json
ENVIAR3_QUANTIDADE_ORDENS=2 ENVIAR3_QUANTIDADE_ORDENS=2
ENVIAR3_HORA_INICIO=08:00
ENVIAR3_HORA_FIM=22:00
# ═══ Envio Automático 4 ═════════════════════════════════════════════ # ═══ Envio Automático 4 ═════════════════════════════════════════════
ENVIAR4_ATIVO=n ENVIAR4_ATIVO=n
ENVIAR4_INTERVALO_MINUTOS=10 ENVIAR4_INTERVALO_MINUTOS=10
ENVIAR4_ARQUIVO_ORDENS=ordens4.json ENVIAR4_ARQUIVO_ORDENS=ordens4.json
ENVIAR4_QUANTIDADE_ORDENS=2 ENVIAR4_QUANTIDADE_ORDENS=2
ENVIAR4_HORA_INICIO=08:00
ENVIAR4_HORA_FIM=22:00
# ═══ Envio Automático 5 ═════════════════════════════════════════════ # ═══ Envio Automático 5 ═════════════════════════════════════════════
ENVIAR5_ATIVO=n ENVIAR5_ATIVO=n
ENVIAR5_INTERVALO_MINUTOS=1 ENVIAR5_INTERVALO_MINUTOS=1
ENVIAR5_ARQUIVO_ORDENS=ordens5.json ENVIAR5_ARQUIVO_ORDENS=ordens5.json
ENVIAR5_QUANTIDADE_ORDENS=2 ENVIAR5_QUANTIDADE_ORDENS=2
ENVIAR5_HORA_INICIO=08:00
ENVIAR5_HORA_FIM=22:00
# ═══ Envio Automático 6 ═════════════════════════════════════════════ # ═══ Envio Automático 6 ═════════════════════════════════════════════
ENVIAR6_ATIVO=n ENVIAR6_ATIVO=n
ENVIAR6_INTERVALO_MINUTOS=1 ENVIAR6_INTERVALO_MINUTOS=1
ENVIAR6_ARQUIVO_ORDENS=ordens6.json ENVIAR6_ARQUIVO_ORDENS=ordens6.json
ENVIAR6_QUANTIDADE_ORDENS=2 ENVIAR6_QUANTIDADE_ORDENS=2
ENVIAR6_HORA_INICIO=08:00
ENVIAR6_HORA_FIM=22:00
# ═══ Envio Automático 7 ═════════════════════════════════════════════ # ═══ Envio Automático 7 ═════════════════════════════════════════════
ENVIAR7_ATIVO=n ENVIAR7_ATIVO=n
ENVIAR7_INTERVALO_MINUTOS=1 ENVIAR7_INTERVALO_MINUTOS=1
ENVIAR7_ARQUIVO_ORDENS=ordens7.json ENVIAR7_ARQUIVO_ORDENS=ordens7.json
ENVIAR7_QUANTIDADE_ORDENS=2 ENVIAR7_QUANTIDADE_ORDENS=2
ENVIAR7_HORA_INICIO=08:00
ENVIAR7_HORA_FIM=22:00
# ═══ Envio Automático 8 ═════════════════════════════════════════════ # ═══ Envio Automático 8 ═════════════════════════════════════════════
ENVIAR8_ATIVO=n ENVIAR8_ATIVO=n
ENVIAR8_INTERVALO_MINUTOS=1 ENVIAR8_INTERVALO_MINUTOS=1
ENVIAR8_ARQUIVO_ORDENS=ordens8.json ENVIAR8_ARQUIVO_ORDENS=ordens8.json
ENVIAR8_QUANTIDADE_ORDENS=2 ENVIAR8_QUANTIDADE_ORDENS=2
ENVIAR8_HORA_INICIO=08:00
ENVIAR8_HORA_FIM=22:00
# ═══ Envio Automático 9 ═════════════════════════════════════════════ # ═══ Envio Automático 9 ═════════════════════════════════════════════
ENVIAR9_ATIVO=n ENVIAR9_ATIVO=n
ENVIAR9_INTERVALO_MINUTOS=1 ENVIAR9_INTERVALO_MINUTOS=1
ENVIAR9_ARQUIVO_ORDENS=ordens9.json ENVIAR9_ARQUIVO_ORDENS=ordens9.json
ENVIAR9_QUANTIDADE_ORDENS=1 ENVIAR9_QUANTIDADE_ORDENS=1
ENVIAR9_HORA_INICIO=08:00
ENVIAR9_HORA_FIM=22:00
# ═══ Envio Automático 10 ════════════════════════════════════════════ # ═══ Envio Automático 10 ════════════════════════════════════════════
ENVIAR10_ATIVO=n ENVIAR10_ATIVO=n
ENVIAR10_INTERVALO_MINUTOS=1 ENVIAR10_INTERVALO_MINUTOS=1
ENVIAR10_ARQUIVO_ORDENS=ordens10.json ENVIAR10_ARQUIVO_ORDENS=ordens10.json
ENVIAR10_QUANTIDADE_ORDENS=1 ENVIAR10_QUANTIDADE_ORDENS=1
ENVIAR10_HORA_INICIO=08:00
ENVIAR10_HORA_FIM=22:00
# ═══ Envio Automático 11 — IA ═══════════════════════════════════════ # ═══ Envio Automático 11 — IA ═══════════════════════════════════════
ENVIAR11_ATIVO=s ENVIAR11_ATIVO=s
ENVIAR11_INTERVALO_MINUTOS=1 ENVIAR11_INTERVALO_MINUTOS=1
ENVIAR11_ARQUIVO_ORDENS=ordens12.json ENVIAR11_ARQUIVO_ORDENS=ordens12.json
ENVIAR11_QUANTIDADE_ORDENS=1 ENVIAR11_QUANTIDADE_ORDENS=1
ENVIAR11_HORA_INICIO=08:00
# ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ ENVIAR11_HORA_FIM=22:00
HORA_INICIO=08:00
HORA_FIM=22:00
# OpenRouter AI # OpenRouter AI
OPENROUTER_API_KEY=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 OPENROUTER_API_KEY=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
OPENROUTER_MODEL=cognitivecomputations/dolphin-mistral-24b-venice-edition #OPENROUTER_MODEL=cognitivecomputations/dolphin-mistral-24b-venice-edition
OPENROUTER_MODEL=thedrummer/cydonia-24b-v4.1
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_TIMEOUT=60 OPENROUTER_TIMEOUT=60
+23 -4
View File
@@ -17,60 +17,81 @@ ENVIAR1_INTERVALO_MINUTOS=1
ENVIAR1_ARQUIVO_ORDENS=ordens1.json ENVIAR1_ARQUIVO_ORDENS=ordens1.json
# Quantidade de ordens enviadas POR CICLO (1 = uma por ciclo, 3 = três de uma vez a cada intervalo) # Quantidade de ordens enviadas POR CICLO (1 = uma por ciclo, 3 = três de uma vez a cada intervalo)
ENVIAR1_QUANTIDADE_ORDENS=1 ENVIAR1_QUANTIDADE_ORDENS=1
# Horário específico deste envio (HH:MM, 24h)
# ENVIAR1_HORA_INICIO=08:00
# ENVIAR1_HORA_FIM=22:00
# ═══ Envio Automático 2 ═════════════════════════════════════════════ # ═══ Envio Automático 2 ═════════════════════════════════════════════
ENVIAR2_ATIVO=s ENVIAR2_ATIVO=s
ENVIAR2_INTERVALO_MINUTOS=1 ENVIAR2_INTERVALO_MINUTOS=1
ENVIAR2_ARQUIVO_ORDENS=ordens2.json ENVIAR2_ARQUIVO_ORDENS=ordens2.json
ENVIAR2_QUANTIDADE_ORDENS=1 ENVIAR2_QUANTIDADE_ORDENS=1
# ENVIAR2_HORA_INICIO=08:00
# ENVIAR2_HORA_FIM=22:00
# ═══ Envio Automático 3 ═════════════════════════════════════════════ # ═══ Envio Automático 3 ═════════════════════════════════════════════
ENVIAR3_ATIVO=s ENVIAR3_ATIVO=s
ENVIAR3_INTERVALO_MINUTOS=1 ENVIAR3_INTERVALO_MINUTOS=1
ENVIAR3_ARQUIVO_ORDENS=ordens3.json ENVIAR3_ARQUIVO_ORDENS=ordens3.json
ENVIAR3_QUANTIDADE_ORDENS=1 ENVIAR3_QUANTIDADE_ORDENS=1
# ENVIAR3_HORA_INICIO=08:00
# ENVIAR3_HORA_FIM=22:00
# ═══ Envio Automático 4 ═════════════════════════════════════════════ # ═══ Envio Automático 4 ═════════════════════════════════════════════
ENVIAR4_ATIVO=s ENVIAR4_ATIVO=s
ENVIAR4_INTERVALO_MINUTOS=1 ENVIAR4_INTERVALO_MINUTOS=1
ENVIAR4_ARQUIVO_ORDENS=ordens4.json ENVIAR4_ARQUIVO_ORDENS=ordens4.json
ENVIAR4_QUANTIDADE_ORDENS=1 ENVIAR4_QUANTIDADE_ORDENS=1
# ENVIAR4_HORA_INICIO=08:00
# ENVIAR4_HORA_FIM=22:00
# ═══ Envio Automático 5 ═════════════════════════════════════════════ # ═══ Envio Automático 5 ═════════════════════════════════════════════
ENVIAR5_ATIVO=s ENVIAR5_ATIVO=s
ENVIAR5_INTERVALO_MINUTOS=1 ENVIAR5_INTERVALO_MINUTOS=1
ENVIAR5_ARQUIVO_ORDENS=ordens5.json ENVIAR5_ARQUIVO_ORDENS=ordens5.json
ENVIAR5_QUANTIDADE_ORDENS=1 ENVIAR5_QUANTIDADE_ORDENS=1
# ENVIAR5_HORA_INICIO=08:00
# ENVIAR5_HORA_FIM=22:00
# ═══ Envio Automático 6 ═════════════════════════════════════════════ # ═══ Envio Automático 6 ═════════════════════════════════════════════
ENVIAR6_ATIVO=s ENVIAR6_ATIVO=s
ENVIAR6_INTERVALO_MINUTOS=1 ENVIAR6_INTERVALO_MINUTOS=1
ENVIAR6_ARQUIVO_ORDENS=ordens6.json ENVIAR6_ARQUIVO_ORDENS=ordens6.json
ENVIAR6_QUANTIDADE_ORDENS=1 ENVIAR6_QUANTIDADE_ORDENS=1
# ENVIAR6_HORA_INICIO=08:00
# ENVIAR6_HORA_FIM=22:00
# ═══ Envio Automático 7 ═════════════════════════════════════════════ # ═══ Envio Automático 7 ═════════════════════════════════════════════
ENVIAR7_ATIVO=s ENVIAR7_ATIVO=s
ENVIAR7_INTERVALO_MINUTOS=1 ENVIAR7_INTERVALO_MINUTOS=1
ENVIAR7_ARQUIVO_ORDENS=ordens7.json ENVIAR7_ARQUIVO_ORDENS=ordens7.json
ENVIAR7_QUANTIDADE_ORDENS=1 ENVIAR7_QUANTIDADE_ORDENS=1
# ENVIAR7_HORA_INICIO=08:00
# ENVIAR7_HORA_FIM=22:00
# ═══ Envio Automático 8 ═════════════════════════════════════════════ # ═══ Envio Automático 8 ═════════════════════════════════════════════
ENVIAR8_ATIVO=s ENVIAR8_ATIVO=s
ENVIAR8_INTERVALO_MINUTOS=1 ENVIAR8_INTERVALO_MINUTOS=1
ENVIAR8_ARQUIVO_ORDENS=ordens8.json ENVIAR8_ARQUIVO_ORDENS=ordens8.json
ENVIAR8_QUANTIDADE_ORDENS=1 ENVIAR8_QUANTIDADE_ORDENS=1
# ENVIAR8_HORA_INICIO=08:00
# ENVIAR8_HORA_FIM=22:00
# ═══ Envio Automático 9 ═════════════════════════════════════════════ # ═══ Envio Automático 9 ═════════════════════════════════════════════
ENVIAR9_ATIVO=s ENVIAR9_ATIVO=s
ENVIAR9_INTERVALO_MINUTOS=1 ENVIAR9_INTERVALO_MINUTOS=1
ENVIAR9_ARQUIVO_ORDENS=ordens9.json ENVIAR9_ARQUIVO_ORDENS=ordens9.json
ENVIAR9_QUANTIDADE_ORDENS=1 ENVIAR9_QUANTIDADE_ORDENS=1
# ENVIAR9_HORA_INICIO=08:00
# ENVIAR9_HORA_FIM=22:00
# ═══ Envio Automático 10 ════════════════════════════════════════════ # ═══ Envio Automático 10 ════════════════════════════════════════════
ENVIAR10_ATIVO=s ENVIAR10_ATIVO=s
ENVIAR10_INTERVALO_MINUTOS=1 ENVIAR10_INTERVALO_MINUTOS=1
ENVIAR10_ARQUIVO_ORDENS=ordens10.json ENVIAR10_ARQUIVO_ORDENS=ordens10.json
ENVIAR10_QUANTIDADE_ORDENS=1 ENVIAR10_QUANTIDADE_ORDENS=1
# ENVIAR10_HORA_INICIO=08:00
# ENVIAR10_HORA_FIM=22:00
# ═══ Envio Automático 11 — IA (usando o modelo do .env) ═════════════ # ═══ Envio Automático 11 — IA (usando o modelo do .env) ═════════════
# Quando ARQUIVO_ORDENS aponta para ordens12.json ou prefixo ia_, # Quando ARQUIVO_ORDENS aponta para ordens12.json ou prefixo ia_,
@@ -79,7 +100,5 @@ ENVIAR11_ATIVO=n
ENVIAR11_INTERVALO_MINUTOS=5 ENVIAR11_INTERVALO_MINUTOS=5
ENVIAR11_ARQUIVO_ORDENS=ordens12.json ENVIAR11_ARQUIVO_ORDENS=ordens12.json
ENVIAR11_QUANTIDADE_ORDENS=1 ENVIAR11_QUANTIDADE_ORDENS=1
# ENVIAR11_HORA_INICIO=08:00
# ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ # ENVIAR11_HORA_FIM=22:00
HORA_INICIO=08:00
HORA_FIM=22:00
Binary file not shown.
+8 -6
View File
@@ -25,16 +25,16 @@ TELEGRAM_TOKEN=$(grep_val TELEGRAM_TOKEN)
TELEGRAM_CHAT_ID=$(grep_val TELEGRAM_CHAT_ID) TELEGRAM_CHAT_ID=$(grep_val TELEGRAM_CHAT_ID)
SEXO=$(grep_val SEXO) SEXO=$(grep_val SEXO)
IDADE=$(grep_val IDADE) IDADE=$(grep_val IDADE)
HORA_INICIO=$(grep_val HORA_INICIO)
HORA_FIM=$(grep_val HORA_FIM)
# Configuração de cada envio automático # Configuração de cada envio automático
declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE ENVIAR_HORA_INICIO ENVIAR_HORA_FIM
for n in 1 2 3 4 5 6 7 8 9 10 11; do for n in 1 2 3 4 5 6 7 8 9 10 11; do
ENVIAR_ATIVO[$n]=$(grep_val "ENVIAR${n}_ATIVO") ENVIAR_ATIVO[$n]=$(grep_val "ENVIAR${n}_ATIVO")
ENVIAR_INTERVALO[$n]=$(grep_val "ENVIAR${n}_INTERVALO_MINUTOS") ENVIAR_INTERVALO[$n]=$(grep_val "ENVIAR${n}_INTERVALO_MINUTOS")
ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS") ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS")
ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS") ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS")
ENVIAR_HORA_INICIO[$n]=$(grep_val "ENVIAR${n}_HORA_INICIO")
ENVIAR_HORA_FIM[$n]=$(grep_val "ENVIAR${n}_HORA_FIM")
done done
if [ -z "$TELEGRAM_TOKEN" ] || [ "$TELEGRAM_TOKEN" = "seu_token_aqui" ]; then if [ -z "$TELEGRAM_TOKEN" ] || [ "$TELEGRAM_TOKEN" = "seu_token_aqui" ]; then
@@ -54,12 +54,14 @@ for n in 1 2 3 4 5 6 7 8 9 10 11; do
fi fi
done done
export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE HORA_INICIO HORA_FIM export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE
for n in 1 2 3 4 5 6 7 8 9 10 11; do for n in 1 2 3 4 5 6 7 8 9 10 11; do
export "ENVIAR${n}_ATIVO=${ENVIAR_ATIVO[$n]}" export "ENVIAR${n}_ATIVO=${ENVIAR_ATIVO[$n]}"
export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}" export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}"
export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}" export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}"
export "ENVIAR${n}_QUANTIDADE_ORDENS=${ENVIAR_QUANTIDADE[$n]}" export "ENVIAR${n}_QUANTIDADE_ORDENS=${ENVIAR_QUANTIDADE[$n]}"
export "ENVIAR${n}_HORA_INICIO=${ENVIAR_HORA_INICIO[$n]}"
export "ENVIAR${n}_HORA_FIM=${ENVIAR_HORA_FIM[$n]}"
done done
# ─── Dependências ────────────────────────────────────────────────────────────── # ─── Dependências ──────────────────────────────────────────────────────────────
@@ -95,7 +97,6 @@ PYEOF
# ─── Rodar o programa ───────────────────────────────────────────────────────── # ─── Rodar o programa ─────────────────────────────────────────────────────────
echo "[+] Iniciando sistema de ordens..." echo "[+] Iniciando sistema de ordens..."
echo " Sexo: ${SEXO:-masculino} | Idade: ${IDADE:-30}" echo " Sexo: ${SEXO:-masculino} | Idade: ${IDADE:-30}"
echo " Horário: ${HORA_INICIO:-08:00} - ${HORA_FIM:-22:00}"
echo "" echo ""
for n in 1 2 3 4 5 6 7 8 9 10 11; do for n in 1 2 3 4 5 6 7 8 9 10 11; do
status="❌ DESATIVADO" status="❌ DESATIVADO"
@@ -106,8 +107,9 @@ for n in 1 2 3 4 5 6 7 8 9 10 11; do
if [ "${ENVIAR_QUANTIDADE[$n]}" -gt 0 ] 2>/dev/null; then if [ "${ENVIAR_QUANTIDADE[$n]}" -gt 0 ] 2>/dev/null; then
qtd_info="${ENVIAR_QUANTIDADE[$n]} ordens" qtd_info="${ENVIAR_QUANTIDADE[$n]} ordens"
fi fi
hora_info="${ENVIAR_HORA_INICIO[$n]:-00:00}-${ENVIAR_HORA_FIM[$n]:-23:59}"
echo " Envio Automático $n: $status" echo " Envio Automático $n: $status"
echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}" echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Horário: $hora_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}"
done done
echo "" echo ""
echo "Pressione Ctrl+C para parar." echo "Pressione Ctrl+C para parar."
+16 -13
View File
@@ -24,9 +24,6 @@ CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "")
SEXO = os.getenv("SEXO", "masculino").strip().lower() SEXO = os.getenv("SEXO", "masculino").strip().lower()
IDADE = int(os.getenv("IDADE", "30")) IDADE = int(os.getenv("IDADE", "30"))
HORA_INICIO = os.getenv("HORA_INICIO", "00:00").strip()
HORA_FIM = os.getenv("HORA_FIM", "23:59").strip()
# ─── Config por tipo de envio ───────────────────────────────────────────────── # ─── Config por tipo de envio ─────────────────────────────────────────────────
@dataclass @dataclass
@@ -36,6 +33,8 @@ class ConfigEnvio:
intervalo_minutos: int intervalo_minutos: int
arquivo_ordens: str arquivo_ordens: str
quantidade_ordens: int # 0 = sem limite quantidade_ordens: int # 0 = sem limite
hora_inicio: str
hora_fim: str
ia_mode: bool = False ia_mode: bool = False
@@ -51,6 +50,8 @@ def carregar_config_envio(numero: int) -> ConfigEnvio:
intervalo = int(os.getenv(f"{prefixo}INTERVALO_MINUTOS", "1")) intervalo = int(os.getenv(f"{prefixo}INTERVALO_MINUTOS", "1"))
arquivo = os.getenv(f"{prefixo}ARQUIVO_ORDENS", f"ordens{numero}.json").strip() arquivo = os.getenv(f"{prefixo}ARQUIVO_ORDENS", f"ordens{numero}.json").strip()
quantidade = int(os.getenv(f"{prefixo}QUANTIDADE_ORDENS", "0")) quantidade = int(os.getenv(f"{prefixo}QUANTIDADE_ORDENS", "0"))
hora_inicio = os.getenv(f"{prefixo}HORA_INICIO", "00:00").strip()
hora_fim = os.getenv(f"{prefixo}HORA_FIM", "23:59").strip()
ia_mode = _detectar_ia_mode(arquivo) ia_mode = _detectar_ia_mode(arquivo)
return ConfigEnvio( return ConfigEnvio(
numero=numero, numero=numero,
@@ -58,6 +59,8 @@ def carregar_config_envio(numero: int) -> ConfigEnvio:
intervalo_minutos=intervalo, intervalo_minutos=intervalo,
arquivo_ordens=arquivo, arquivo_ordens=arquivo,
quantidade_ordens=quantidade, quantidade_ordens=quantidade,
hora_inicio=hora_inicio,
hora_fim=hora_fim,
ia_mode=ia_mode, ia_mode=ia_mode,
) )
@@ -117,9 +120,9 @@ async def enviar_mensagem(bot: Bot, texto: str) -> None:
# ─── Verificação de horário ─────────────────────────────────────────────────── # ─── Verificação de horário ───────────────────────────────────────────────────
def dentro_do_horario() -> bool: def dentro_do_horario(hora_inicio: str, hora_fim: str) -> bool:
agora = datetime.now().strftime("%H:%M") agora = datetime.now().strftime("%H:%M")
return HORA_INICIO <= agora <= HORA_FIM return hora_inicio <= agora <= hora_fim
# ─── Loop individual de envio ───────────────────────────────────────────────── # ─── Loop individual de envio ─────────────────────────────────────────────────
@@ -144,7 +147,7 @@ async def loop_envio(config: ConfigEnvio) -> None:
f"Intervalo: {config.intervalo_minutos} minuto(s)\n" f"Intervalo: {config.intervalo_minutos} minuto(s)\n"
f"Ordens por ciclo: {config.quantidade_ordens}\n" f"Ordens por ciclo: {config.quantidade_ordens}\n"
f"Modelo de IA: {os.getenv('OPENROUTER_MODEL', 'desconhecido')}\n" f"Modelo de IA: {os.getenv('OPENROUTER_MODEL', 'desconhecido')}\n"
f"Horário de funcionamento: {HORA_INICIO} - {HORA_FIM}\n\n" f"Horário de funcionamento: {config.hora_inicio} - {config.hora_fim}\n\n"
f"DeepSeek está online e vai gerar cada ordem em tempo real.\n" f"DeepSeek está online e vai gerar cada ordem em tempo real.\n"
f"Prepare-se para obedecer a IA." f"Prepare-se para obedecer a IA."
) )
@@ -161,25 +164,25 @@ async def loop_envio(config: ConfigEnvio) -> None:
f"Ordens por ciclo: {config.quantidade_ordens}\n" f"Ordens por ciclo: {config.quantidade_ordens}\n"
f"Arquivo de ordens: {config.arquivo_ordens}\n" f"Arquivo de ordens: {config.arquivo_ordens}\n"
f"Total de ordens disponíveis: {len(ordens)}\n" f"Total de ordens disponíveis: {len(ordens)}\n"
f"Horário de funcionamento: {HORA_INICIO} - {HORA_FIM}\n\n" f"Horário de funcionamento: {config.hora_inicio} - {config.hora_fim}\n\n"
f"A(s) primeira(s) ordem(ns) será(ão) enviada(s) imediatamente.\n" f"A(s) primeira(s) ordem(ns) será(ão) enviada(s) imediatamente.\n"
f"Prepare-se para cumprir todas as ordens." f"Prepare-se para cumprir todas as ordens."
) )
await enviar_mensagem(bot, msg_start) await enviar_mensagem(bot, msg_start)
agora = datetime.now().strftime("%H:%M") agora = datetime.now().strftime("%H:%M")
if not dentro_do_horario(): if not dentro_do_horario(config.hora_inicio, config.hora_fim):
log.info("Horário atual %s fora da janela %s-%s. Aguardando...", agora, HORA_INICIO, HORA_FIM) log.info("Horário atual %s fora da janela %s-%s. Aguardando...", agora, config.hora_inicio, config.hora_fim)
await bot.send_message( await bot.send_message(
chat_id=CHAT_ID, chat_id=CHAT_ID,
text=f"Horário atual ({agora}) fora da janela de ordens ({HORA_INICIO}-{HORA_FIM}).\n" text=f"Horário atual ({agora}) fora da janela de ordens ({config.hora_inicio}-{config.hora_fim}).\n"
f"As ordens (envio {config.numero}) serão retomadas automaticamente às {HORA_INICIO}.", f"As ordens (envio {config.numero}) serão retomadas automaticamente às {config.hora_inicio}.",
) )
ordem_index = 0 ordem_index = 0
while True: while True:
if not dentro_do_horario(): if not dentro_do_horario(config.hora_inicio, config.hora_fim):
log.info("Fora do horário de funcionamento (%s-%s). Aguardando...", HORA_INICIO, HORA_FIM) log.info("Fora do horário de funcionamento (%s-%s). Aguardando...", config.hora_inicio, config.hora_fim)
await asyncio.sleep(60) await asyncio.sleep(60)
continue continue