Add complete Flask web application with Telegram bot integration, multiple AI provider support (llama.cpp, OpenRouter, z.ai, StepFun), extensive order banks for BDSM-themed gameplay, automated cron scheduling, and responsive web UI with inference parameter controls.
107 lines
3.5 KiB
Python
Executable File
107 lines
3.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Sistema de envio automático de Contos Eróticos para o Telegram.
|
|
Envia um conto erótico aleatório a cada 50 minutos.
|
|
Utiliza todos os geradores de contos do projeto.
|
|
"""
|
|
import logging
|
|
import os
|
|
import random
|
|
import sys
|
|
import time
|
|
|
|
import requests
|
|
|
|
from dados_bunda_cu import gerar_conto_bunda_cu
|
|
|
|
# ── Logging ──
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(asctime)s [%(levelname)s] %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
logger = logging.getLogger("conto_erotico")
|
|
|
|
# ── Telegram ──
|
|
BOT_TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "")
|
|
CHAT_ID = os.environ.get("TELEGRAM_CHAT_ID", "")
|
|
|
|
if not BOT_TOKEN or not CHAT_ID:
|
|
logger.error("TELEGRAM_BOT_TOKEN e TELEGRAM_CHAT_ID devem estar definidos no .env")
|
|
sys.exit(1)
|
|
|
|
TELEGRAM_API = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
|
|
|
|
|
|
def enviar_telegram(texto):
|
|
"""Envia uma mensagem de texto longa para o Telegram com timestamp.
|
|
Se o texto for muito grande, divide em partes e envia sequencialmente."""
|
|
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
|
|
rodape = f"\n\n📅 {agora}"
|
|
max_len = 4000
|
|
# Anexa o timestamp na última parte
|
|
partes = [texto[i:i+max_len] for i in range(0, len(texto), max_len)]
|
|
if partes:
|
|
partes[-1] += rodape
|
|
for i, parte in enumerate(partes):
|
|
try:
|
|
resp = requests.post(TELEGRAM_API, json={
|
|
"chat_id": CHAT_ID,
|
|
"text": parte,
|
|
"parse_mode": "HTML",
|
|
}, timeout=15)
|
|
if resp.status_code != 200:
|
|
logger.warning("Telegram retornou %s (parte %d/%d): %s",
|
|
resp.status_code, i+1, len(partes), resp.text[:200])
|
|
else:
|
|
logger.info("Parte %d/%d do conto enviada ao Telegram.", i+1, len(partes))
|
|
except requests.RequestException as exc:
|
|
logger.error("Falha ao enviar parte %d/%d: %s", i+1, len(partes), exc)
|
|
|
|
|
|
# ── Geradores de contos ──
|
|
GERADORES = [
|
|
("📖 Exibindo Bunda e Cú", gerar_conto_bunda_cu),
|
|
]
|
|
|
|
|
|
def gerar_conto():
|
|
"""Seleciona um gerador aleatório e retorna o conto com cabeçalho."""
|
|
titulo, gerador = random.choice(GERADORES)
|
|
try:
|
|
conto = gerador()
|
|
except Exception as exc:
|
|
logger.exception("Erro ao gerar conto com %s", titulo)
|
|
conto = f"Erro ao gerar conto: {exc}"
|
|
return f"📖 <b>CONTO ERÓTICO</b> 🖤\n🎭 <b>{titulo}</b>\n\n{conto}"
|
|
|
|
|
|
def loop_principal():
|
|
"""Loop infinito que envia contos a cada 50 minutos."""
|
|
logger.info("📖 Sistema de Contos Eróticos iniciado.")
|
|
logger.info("Bot: @hermesjogo1000")
|
|
logger.info("Intervalo: 50 minutos entre contos.")
|
|
enviar_telegram("📖 SISTEMA DE CONTOS ERÓTICOS ATIVADO.\n"
|
|
"Contos serão enviados automaticamente a cada 50 minutos.")
|
|
|
|
while True:
|
|
try:
|
|
texto = gerar_conto()
|
|
logger.info("Enviando conto erótico...")
|
|
enviar_telegram(texto)
|
|
|
|
# Aguarda 50 minutos (3000 segundos)
|
|
logger.info("Aguardando 50 minutos até o próximo conto...")
|
|
time.sleep(50 * 60)
|
|
|
|
except KeyboardInterrupt:
|
|
logger.info("Sistema encerrado pelo usuário.")
|
|
enviar_telegram("📖 SISTEMA DE CONTOS ERÓTICOS DESATIVADO.")
|
|
break
|
|
except Exception as exc:
|
|
logger.exception("Erro no loop principal: %s", exc)
|
|
time.sleep(60)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
loop_principal() |