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
+3
View File
@@ -10,16 +10,19 @@ IDADE=65
ENVIAR1_ATIVO=s ENVIAR1_ATIVO=s
ENVIAR1_INTERVALO_MINUTOS=1 ENVIAR1_INTERVALO_MINUTOS=1
ENVIAR1_ARQUIVO_ORDENS=ordens1.json ENVIAR1_ARQUIVO_ORDENS=ordens1.json
ENVIAR1_QUANTIDADE_ORDENS=2
# ═══ 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=2
# ═══ 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=2
# ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ # ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════
HORA_INICIO=08:00 HORA_INICIO=08:00
+4
View File
@@ -15,16 +15,20 @@ IDADE=30
ENVIAR1_ATIVO=s ENVIAR1_ATIVO=s
ENVIAR1_INTERVALO_MINUTOS=1 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)
ENVIAR1_QUANTIDADE_ORDENS=1
# ═══ 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
# ═══ 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
# ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ # ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════
HORA_INICIO=08:00 HORA_INICIO=08:00
+1
View File
@@ -39,6 +39,7 @@ Para cada um dos 3 envios automáticos independentes:
| `ENVIAR{n}_ATIVO` | `s` = ativado, qualquer outro valor = desativado | | `ENVIAR{n}_ATIVO` | `s` = ativado, qualquer outro valor = desativado |
| `ENVIAR{n}_INTERVALO_MINUTOS` | Intervalo em minutos entre ordens | | `ENVIAR{n}_INTERVALO_MINUTOS` | Intervalo em minutos entre ordens |
| `ENVIAR{n}_ARQUIVO_ORDENS` | Caminho do arquivo JSON com as ordens | | `ENVIAR{n}_ARQUIVO_ORDENS` | Caminho do arquivo JSON com as ordens |
| `ENVIAR{n}_QUANTIDADE_ORDENS` | Quantidade de ordens enviadas **por ciclo** de intervalo (1 = uma por ciclo; 3 = três de uma vez a cada intervalo) |
Exemplo para o envio 1: Exemplo para o envio 1:
Executable → Regular
BIN
View File
Binary file not shown.
+8 -2
View File
@@ -29,11 +29,12 @@ HORA_INICIO=$(grep_val HORA_INICIO)
HORA_FIM=$(grep_val HORA_FIM) 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 declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE
for n in 1 2 3; do for n in 1 2 3; 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")
done done
if [ -z "$TELEGRAM_TOKEN" ] || [ "$TELEGRAM_TOKEN" = "seu_token_aqui" ]; then if [ -z "$TELEGRAM_TOKEN" ] || [ "$TELEGRAM_TOKEN" = "seu_token_aqui" ]; then
@@ -58,6 +59,7 @@ for n in 1 2 3; 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]}"
done done
# ─── Python virtual env ────────────────────────────────────────────────────── # ─── Python virtual env ──────────────────────────────────────────────────────
@@ -102,8 +104,12 @@ for n in 1 2 3; do
if [ "${ENVIAR_ATIVO[$n]}" = "s" ]; then if [ "${ENVIAR_ATIVO[$n]}" = "s" ]; then
status="✅ ATIVO" status="✅ ATIVO"
fi 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 " Envio Automático $n: $status"
echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}" echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}"
done done
echo "" echo ""
echo "Pressione Ctrl+C para parar." echo "Pressione Ctrl+C para parar."
+26 -13
View File
@@ -35,6 +35,7 @@ class ConfigEnvio:
ativo: bool ativo: bool
intervalo_minutos: int intervalo_minutos: int
arquivo_ordens: str arquivo_ordens: str
quantidade_ordens: int # 0 = sem limite
def carregar_config_envio(numero: int) -> ConfigEnvio: def carregar_config_envio(numero: int) -> ConfigEnvio:
@@ -43,11 +44,13 @@ def carregar_config_envio(numero: int) -> ConfigEnvio:
ativo = ativo_raw == "s" ativo = ativo_raw == "s"
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"))
return ConfigEnvio( return ConfigEnvio(
numero=numero, numero=numero,
ativo=ativo, ativo=ativo,
intervalo_minutos=intervalo, intervalo_minutos=intervalo,
arquivo_ordens=arquivo, arquivo_ordens=arquivo,
quantidade_ordens=quantidade,
) )
@@ -129,14 +132,19 @@ async def loop_envio(config: ConfigEnvio) -> None:
# Mensagem de inicialização # Mensagem de inicialização
artigo = "o" if SEXO == "masculino" else "a" 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 = ( msg_start = (
f"🚀 Envio Automático {config.numero} ativado.\n" f"🚀 Envio Automático {config.numero} ativado.\n"
f"Sexo: {SEXO} | Idade: {IDADE}\n" f"Sexo: {SEXO} | Idade: {IDADE}\n"
f"Intervalo: {config.intervalo_minutos} minuto(s)\n" f"Intervalo: {config.intervalo_minutos} minuto(s)\n"
f"{info_quantidade}"
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: {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." f"Prepare-se para cumprir todas as ordens."
) )
await enviar_mensagem(bot, msg_start) await enviar_mensagem(bot, msg_start)
@@ -157,21 +165,26 @@ async def loop_envio(config: ConfigEnvio) -> None:
await asyncio.sleep(60) await asyncio.sleep(60)
continue continue
ordem = ordens[ordem_index % len(ordens)] # Quantidade de ordens a enviar neste ciclo
ordem_adaptada = adaptar_ordem(ordem) qtd = config.quantidade_ordens if config.quantidade_ordens > 0 else 1
agora = datetime.now().strftime("%d/%m/%Y %H:%M") # Envia lote de ordens
texto = ( for i in range(qtd):
f"ORDEM #{ordem_index + 1} [Env. {config.numero}]\n" ordem = ordens[(ordem_index + i) % len(ordens)]
f"{agora}\n\n" ordem_adaptada = adaptar_ordem(ordem)
f"{ordem_adaptada}\n\n"
f"Próxima ordem em {config.intervalo_minutos} minuto(s)."
f"\n\nCumpra agora."
)
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) await asyncio.sleep(config.intervalo_minutos * 60)