This commit is contained in:
marco
2026-09-09 11:10:28 -03:00
parent ef9ee6bf52
commit bbb47ad1be
6 changed files with 42 additions and 15 deletions
+26 -13
View File
@@ -35,6 +35,7 @@ class ConfigEnvio:
ativo: bool
intervalo_minutos: int
arquivo_ordens: str
quantidade_ordens: int # 0 = sem limite
def carregar_config_envio(numero: int) -> ConfigEnvio:
@@ -43,11 +44,13 @@ def carregar_config_envio(numero: int) -> ConfigEnvio:
ativo = ativo_raw == "s"
intervalo = int(os.getenv(f"{prefixo}INTERVALO_MINUTOS", "1"))
arquivo = os.getenv(f"{prefixo}ARQUIVO_ORDENS", f"ordens{numero}.json").strip()
quantidade = int(os.getenv(f"{prefixo}QUANTIDADE_ORDENS", "0"))
return ConfigEnvio(
numero=numero,
ativo=ativo,
intervalo_minutos=intervalo,
arquivo_ordens=arquivo,
quantidade_ordens=quantidade,
)
@@ -129,14 +132,19 @@ async def loop_envio(config: ConfigEnvio) -> None:
# Mensagem de inicialização
artigo = "o" if SEXO == "masculino" else "a"
if config.quantidade_ordens > 1:
info_quantidade = f"Ordens por ciclo: {config.quantidade_ordens}\n"
else:
info_quantidade = "Ordens por ciclo: 1\n"
msg_start = (
f"🚀 Envio Automático {config.numero} ativado.\n"
f"Sexo: {SEXO} | Idade: {IDADE}\n"
f"Intervalo: {config.intervalo_minutos} minuto(s)\n"
f"{info_quantidade}"
f"Arquivo de ordens: {config.arquivo_ordens}\n"
f"Total de ordens disponíveis: {len(ordens)}\n"
f"Horário de funcionamento: {HORA_INICIO} - {HORA_FIM}\n\n"
f"A primeira ordem será enviada em {config.intervalo_minutos} minuto(s).\n"
f"A(s) primeira(s) ordem(ns) será(ão) enviada(s) imediatamente.\n"
f"Prepare-se para cumprir todas as ordens."
)
await enviar_mensagem(bot, msg_start)
@@ -157,21 +165,26 @@ async def loop_envio(config: ConfigEnvio) -> None:
await asyncio.sleep(60)
continue
ordem = ordens[ordem_index % len(ordens)]
ordem_adaptada = adaptar_ordem(ordem)
# Quantidade de ordens a enviar neste ciclo
qtd = config.quantidade_ordens if config.quantidade_ordens > 0 else 1
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
texto = (
f"ORDEM #{ordem_index + 1} [Env. {config.numero}]\n"
f"{agora}\n\n"
f"{ordem_adaptada}\n\n"
f"Próxima ordem em {config.intervalo_minutos} minuto(s)."
f"\n\nCumpra agora."
)
# Envia lote de ordens
for i in range(qtd):
ordem = ordens[(ordem_index + i) % len(ordens)]
ordem_adaptada = adaptar_ordem(ordem)
await enviar_mensagem(bot, texto)
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
texto = (
f"ORDEM #{ordem_index + i + 1} [Env. {config.numero}]\n"
f"{agora}\n\n"
f"{ordem_adaptada}\n\n"
f"Próxima ordem em {config.intervalo_minutos} minuto(s)."
f"\n\nCumpra agora."
)
ordem_index += 1
await enviar_mensagem(bot, texto)
ordem_index += qtd
await asyncio.sleep(config.intervalo_minutos * 60)