First Commit

This commit is contained in:
marco
2026-09-04 08:04:42 -03:00
commit fece2ff049
2140 changed files with 377864 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
import json
import os
import random
import asyncio
import logging
from datetime import datetime
from dotenv import load_dotenv
from telegram import Bot
from telegram.error import TelegramError
load_dotenv()
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
)
log = logging.getLogger(__name__)
# ─── Config ───────────────────────────────────────────────────────────────────
TOKEN = os.getenv("TELEGRAM_TOKEN", "")
CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "")
SEXO = os.getenv("SEXO", "masculino").strip().lower()
IDADE = int(os.getenv("IDADE", "30"))
INTERVALO = int(os.getenv("INTERVALO_MINUTOS", "5"))
ORDENS_PATH = os.path.join(os.path.dirname(__file__), "ordens.json")
# ─── Substituições para sexo feminino ──────────────────────────────────────────
# Ordem importa: mais específicas primeiro
SUBSTITUICOES_FEMININO = [
("a cabeça do pau", "o clitóris"),
("cabeça do pau", "clitóris"),
("da cabeça do pau", "do clitóris"),
("a glande", "o clitóris"),
("da glande", "do clitóris"),
("glande", "clitóris"),
("do pau", "da buceta"),
("no pau", "na buceta"),
("o pau", "a buceta"),
("um pau", "uma buceta"),
("pau", "buceta"),
("o saco", "a xota"),
("do saco", "da xota"),
("no saco", "na xota"),
("saco", "xota"),
("a cueca", "a calcinha"),
("da cueca", "da calcinha"),
("na cueca", "na calcinha"),
("cueca", "calcinha"),
("punheta", "siririca"),
("porra", "gozo"),
("próstata", "ponto G"),
]
def adaptar_ordem(ordem: str) -> str:
if SEXO == "feminino":
for masculino, feminino in SUBSTITUICOES_FEMININO:
ordem = ordem.replace(masculino, feminino)
return ordem
# ─── Carregar ordens ──────────────────────────────────────────────────────────
def carregar_ordens():
with open(ORDENS_PATH, "r", encoding="utf-8") as f:
ordens = json.load(f)
if not ordens:
raise ValueError("Nenhuma ordem encontrada em ordens.json")
return ordens
# ─── Envio Telegram ───────────────────────────────────────────────────────────
async def enviar_mensagem(bot: Bot, texto: str):
try:
await bot.send_message(chat_id=CHAT_ID, text=texto)
log.info("Ordem enviada com sucesso.")
except TelegramError as e:
log.error("Erro ao enviar mensagem: %s", e)
# ─── Comando /start ───────────────────────────────────────────────────────────
async def cmd_start(ordens: list):
bot = Bot(token=TOKEN)
artigo = "o" if SEXO == "masculino" else "a"
msg_start = (
f"Olá {artigo} usuário!\n\n"
f"O sistema de ordens automáticas foi ativado.\n"
f"Sexo: {SEXO} | Idade: {IDADE}\n"
f"Intervalo: {INTERVALO} minuto(s)\n"
f"Total de ordens disponíveis: {len(ordens)}\n\n"
f"A primeira ordem será enviada em {INTERVALO} minuto(s).\n"
f"Prepare-se para cumprir todas as ordens."
)
await enviar_mensagem(bot, msg_start)
# ─── Loop principal ────────────────────────────────────────────────────────────
async def loop_principal():
if not TOKEN or not CHAT_ID:
log.error("TELEGRAM_TOKEN e TELEGRAM_CHAT_ID devem estar configurados no .env")
return
ordens = carregar_ordens()
random.shuffle(ordens)
bot = Bot(token=TOKEN)
await cmd_start(ordens)
await asyncio.sleep(INTERVALO * 60)
ordem_index = 0
while True:
ordem = ordens[ordem_index % len(ordens)]
ordem_adaptada = adaptar_ordem(ordem)
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
texto = (
f"ORDEM #{ordem_index + 1}\n"
f"{agora}\n\n"
f"{ordem_adaptada}\n\n"
f"Proxima ordem em {INTERVALO} minuto(s)."
f"\n\nCumpra agora."
)
await enviar_mensagem(bot, texto)
ordem_index += 1
await asyncio.sleep(INTERVALO * 60)
# ─── Entry point ──────────────────────────────────────────────────────────────
def main():
try:
asyncio.run(loop_principal())
except KeyboardInterrupt:
log.info("Sistema encerrado pelo usuário.")
except Exception as e:
log.error("Erro fatal: %s", e)
if __name__ == "__main__":
main()