diff --git a/.env b/.env index 5dd950e..76b71fd 100755 --- a/.env +++ b/.env @@ -10,16 +10,19 @@ IDADE=65 ENVIAR1_ATIVO=s ENVIAR1_INTERVALO_MINUTOS=1 ENVIAR1_ARQUIVO_ORDENS=ordens1.json +ENVIAR1_QUANTIDADE_ORDENS=2 # ═══ Envio Automático 2 ═════════════════════════════════════════════ ENVIAR2_ATIVO=s ENVIAR2_INTERVALO_MINUTOS=1 ENVIAR2_ARQUIVO_ORDENS=ordens2.json +ENVIAR2_QUANTIDADE_ORDENS=2 # ═══ Envio Automático 3 ═════════════════════════════════════════════ ENVIAR3_ATIVO=s ENVIAR3_INTERVALO_MINUTOS=1 ENVIAR3_ARQUIVO_ORDENS=ordens3.json +ENVIAR3_QUANTIDADE_ORDENS=2 # ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ HORA_INICIO=08:00 diff --git a/.env.example b/.env.example index 6ce8a64..e4a3af5 100755 --- a/.env.example +++ b/.env.example @@ -15,16 +15,20 @@ IDADE=30 ENVIAR1_ATIVO=s ENVIAR1_INTERVALO_MINUTOS=1 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 ═════════════════════════════════════════════ ENVIAR2_ATIVO=s ENVIAR2_INTERVALO_MINUTOS=1 ENVIAR2_ARQUIVO_ORDENS=ordens2.json +ENVIAR2_QUANTIDADE_ORDENS=1 # ═══ Envio Automático 3 ═════════════════════════════════════════════ ENVIAR3_ATIVO=s ENVIAR3_INTERVALO_MINUTOS=1 ENVIAR3_ARQUIVO_ORDENS=ordens3.json +ENVIAR3_QUANTIDADE_ORDENS=1 # ═══ Horário de funcionamento (formato HH:MM, 24h) ═══════════════════ HORA_INICIO=08:00 diff --git a/DEPLOY.md b/DEPLOY.md index 9557d47..f645e6d 100755 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -39,6 +39,7 @@ Para cada um dos 3 envios automáticos independentes: | `ENVIAR{n}_ATIVO` | `s` = ativado, qualquer outro valor = desativado | | `ENVIAR{n}_INTERVALO_MINUTOS` | Intervalo em minutos entre 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: diff --git a/__pycache__/main.cpython-311.pyc b/__pycache__/main.cpython-311.pyc old mode 100755 new mode 100644 index 46f3330..6a1a66b Binary files a/__pycache__/main.cpython-311.pyc and b/__pycache__/main.cpython-311.pyc differ diff --git a/iniciar.sh b/iniciar.sh index e07f570..d90a16a 100755 --- a/iniciar.sh +++ b/iniciar.sh @@ -29,11 +29,12 @@ 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 +declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE for n in 1 2 3; 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 @@ -58,6 +59,7 @@ for n in 1 2 3; 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 ────────────────────────────────────────────────────── @@ -102,8 +104,12 @@ for n in 1 2 3; do 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 | 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 echo "" echo "Pressione Ctrl+C para parar." diff --git a/main.py b/main.py index dcdf6ff..0979ebc 100755 --- a/main.py +++ b/main.py @@ -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)