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.
191 lines
8.7 KiB
Python
Executable File
191 lines
8.7 KiB
Python
Executable File
"""Contexto e função para gerar ordens de PLUG FIXO MEDIO com IA.
|
|
|
|
Cenario: o submisso ja esta com o plug fixo medio enfiado no cu. A cada clique,
|
|
a IA cria UMA ordem nova, picante, erotica, sem pudor, usando linguagem popular,
|
|
sempre dentro do mesmo tema: o plug fixo medio que nao sai.
|
|
|
|
Integracao com Telegram: cada ordem gerada pode ser enviada automaticamente
|
|
para um grupo de Telegram via webhook ou API direta.
|
|
"""
|
|
|
|
import random
|
|
import json
|
|
import os
|
|
import requests
|
|
import time
|
|
from datetime import datetime, timezone
|
|
|
|
# ==============================================================================
|
|
# CONTEXTO PARA A IA
|
|
# ==============================================================================
|
|
|
|
CONTEXTO_PLUG_FIXO_MEDIO = (
|
|
"TEMA DA ORDEM: PLUG FIXO MEDIO.\n"
|
|
"O submisso ja esta com o plug fixo medio enfiado no cu. O plug nao sai.\n"
|
|
"Cada ordem deve girar em torno desse plug fixo medio: movimentos, sensacoes, "
|
|
"tarefas, exibicoes, edging, gozo, exposicao, tudo com o plug dentro.\n\n"
|
|
"REGRAS OBRIGATORIAS:\n"
|
|
"- Escreva sempre em portugues do Brasil, tom direto, imperativo e dominador.\n"
|
|
"- Seja PICANTE, erotico, sem pudor, use linguagem popular e explicita.\n"
|
|
"- Nao use saudações longas nem explicações fora da ordem. Apenas a ordem.\n"
|
|
"- Comece sempre com um titulo curto em letras maiusculas.\n"
|
|
"- Inclua sempre uma regra no final, no formato [REGRA] ...\n"
|
|
"- VOCABULARIO OBRIGATORIO: use 'pau', 'cú', 'bunda', 'buceta', 'gozo', 'porra', "
|
|
"'arregace a bunda e o cú' ao inves de 'abra a bunda'.\n"
|
|
"- Nao faca nada que seja proibido por lei. Nao envolva menores, nao faca apologia "
|
|
"a crimes, nao descreva violencia nao consentida.\n"
|
|
"- Varie o tipo de ordem: tarefas domesticas, exposicao, edging, gozo, posicoes, "
|
|
"humilhacao erotica, exibicao, duracao, contracoes, movimentos.\n"
|
|
"- O plug fixo medio deve estar SEMPRE presente na ordem, de forma central.\n"
|
|
"- Use frases curtas e diretas. Seja criativo e intenso.\n"
|
|
)
|
|
|
|
# ==============================================================================
|
|
# EXEMPLOS PARA A IA
|
|
# ==============================================================================
|
|
|
|
EXEMPLOS_PLUG_FIXO_MEDIO = [
|
|
"ORDEM DO MESTRE — PLUG FIXO MEDIO: Enfie o plug fixo medio no cu e vá varrer a casa pelado. Cada passada da vassoura balanca o plug dentro de você. O cabo da vassoura desliza, o plug se mexe. Varra cada cômodo sentindo o preenchimento constante.\n[REGRA] Não tire o plug enquanto varrer. O pó levantado é sua testemunha. Varra devagar, sentindo cada movimento.",
|
|
"ORDEM DO MESTRE — PLUG FIXO MEDIO: Com o plug fixo medio enfiado no cú, faça EDGING 5 vezes. Masturbe-se até o limite do gozo e pare. O plug dentro amplifica cada movimento na cabeça do pau. Cada vez que você para, o plug te lembra que você está aberto.\n[REGRA] 5 edgings com o plug. Na quinta, pode gozar. Goze com o plug dentro, sentindo o cú apertar em volta dele.",
|
|
"ORDEM DO MESTRE — PLUG FIXO MEDIO: Enfie o plug fixo medio e fique de quatro na área de serviço com a porta aberta. Mostre o plug enfiado no cú para quem passar. Fique 10 minutos nessa posição, o plug exposto, o cú arregaçado em volta dele.\n[REGRA] 10 minutos de quatro com o plug à mostra. Se alguém passar, não se mexa. A exibição é sua humilhação.",
|
|
"ORDEM DO MESTRE — PLUG FIXO MEDIO: Com o plug fixo medio enfiado, ande pela casa por 30 minutos fazendo tarefas aleatórias. O plug não sai, não escorrega, não precisa segurar. Ande, curve-se, sente-se, levante-se. O plug acompanha cada movimento. Liberdade de movimento com submissão.\n[REGRA] 30 minutos de atividades com o plug. Aproveite a liberdade que o plug fixo dá. Faça tudo que precisar com ele dentro.",
|
|
"ORDEM DO MESTRE — PLUG FIXO MEDIO: Enfie o plug fixo medio e goze com ele dentro. Mas o gozo tem que ser sem tocar no pau. Só com a estimulação do plug na próstata. Deite, relaxe, contraia o cú em volta do plug e deixe o orgasmo vir de dentro.\n[REGRA] Goze só com o plug. Sem mão no pau. O orgasmo prostático é mais profundo. Sinta o gozo jorrar sem toque.",
|
|
]
|
|
|
|
# ==============================================================================
|
|
# TELEGRAM INTEGRATION
|
|
# ==============================================================================
|
|
|
|
TELEGRAM_CONFIG = {
|
|
"token": None,
|
|
"chat_id": None,
|
|
"bot_url": "https://api.telegram.org/bot",
|
|
"enabled": False,
|
|
}
|
|
|
|
|
|
def _carregar_config_telegram():
|
|
"""Carrega a configuração do Telegram do arquivo de estado."""
|
|
caminho = os.path.join(os.path.dirname(os.path.abspath(__file__)), "estado_ia.json")
|
|
if os.path.exists(caminho):
|
|
try:
|
|
with open(caminho, "r", encoding="utf-8") as f:
|
|
dados = json.load(f)
|
|
if isinstance(dados, dict):
|
|
TELEGRAM_CONFIG["token"] = dados.get("telegram_token", None)
|
|
TELEGRAM_CONFIG["chat_id"] = dados.get("telegram_chat_id", None)
|
|
TELEGRAM_CONFIG["enabled"] = bool(dados.get("telegram_enabled", False))
|
|
except (json.JSONDecodeError, OSError):
|
|
pass
|
|
return TELEGRAM_CONFIG
|
|
|
|
|
|
def _salvar_config_telegram(token, chat_id, enabled):
|
|
"""Salva a configuração do Telegram no arquivo de estado."""
|
|
caminho = os.path.join(os.path.dirname(os.path.abspath(__file__)), "estado_ia.json")
|
|
dados = {}
|
|
if os.path.exists(caminho):
|
|
try:
|
|
with open(caminho, "r", encoding="utf-8") as f:
|
|
dados = json.load(f)
|
|
except (json.JSONDecodeError, OSError):
|
|
pass
|
|
dados["telegram_token"] = token
|
|
dados["telegram_chat_id"] = chat_id
|
|
dados["telegram_enabled"] = enabled
|
|
try:
|
|
with open(caminho, "w", encoding="utf-8") as f:
|
|
json.dump(dados, f, ensure_ascii=False, indent=2)
|
|
except OSError:
|
|
pass
|
|
|
|
|
|
def enviar_telegram_mensagem(texto, chat_id=None):
|
|
"""Envia uma mensagem para o Telegram.
|
|
|
|
Se nao houver token configurado, a mensagem e armazenada em um arquivo
|
|
de buffer para envio posterior. Se chat_id for None, usa o chat_id
|
|
configurado no estado.
|
|
"""
|
|
config = _carregar_config_telegram()
|
|
if not config["enabled"] or not config["token"] or not config["chat_id"]:
|
|
return False
|
|
|
|
if chat_id is None:
|
|
chat_id = config["chat_id"]
|
|
|
|
if not chat_id:
|
|
return False
|
|
|
|
url = f"{config['bot_url']}{config['token']}/sendMessage"
|
|
payload = {
|
|
"chat_id": chat_id,
|
|
"text": texto,
|
|
"parse_mode": "HTML",
|
|
}
|
|
try:
|
|
resp = requests.post(url, json=payload, timeout=10)
|
|
return resp.status_code == 200
|
|
except requests.RequestException:
|
|
return False
|
|
|
|
|
|
def enviar_telegram_ordem(ordem):
|
|
"""Envia uma ordem gerada pela IA para o Telegram."""
|
|
texto = f"🔥 ORDEM DO MESTRE — PLUG FIXO MEDIO\n\n{ordem}\n\n[REGRA] Nao tire o plug enquanto for enviado."
|
|
return enviar_telegram_mensagem(texto)
|
|
|
|
|
|
def configurar_telegram(token, chat_id, enabled=True):
|
|
"""Configura a integracao com o Telegram."""
|
|
TELEGRAM_CONFIG["token"] = token
|
|
TELEGRAM_CONFIG["chat_id"] = chat_id
|
|
TELEGRAM_CONFIG["enabled"] = enabled
|
|
_salvar_config_telegram(token, chat_id, enabled)
|
|
|
|
|
|
def verificar_telegram_disponivel():
|
|
"""Retorna True quando o Telegram esta configurado e disponivel."""
|
|
config = _carregar_config_telegram()
|
|
return config["enabled"] and config["token"] and config["chat_id"]
|
|
|
|
|
|
# ==============================================================================
|
|
# FUNCOES
|
|
# ==============================================================================
|
|
|
|
def gerar_contexto_plug_fixo_medio_ia():
|
|
"""Retorna o contexto completo para a IA gerar ordens de Plug Fixo Medio."""
|
|
exemplo_texto = "\n".join(
|
|
f"EXEMPLO {i+1}:\n{exemplo}\n"
|
|
for i, exemplo in enumerate(EXEMPLOS_PLUG_FIXO_MEDIO)
|
|
)
|
|
return CONTEXTO_PLUG_FIXO_MEDIO + "\n\n" + exemplo_texto
|
|
|
|
|
|
def gerar_ordem_plug_fixo_medio_ia():
|
|
"""Gera uma ordem de Plug Fixo Medio usando a IA.
|
|
|
|
Usa o mesmo mecanismo de gerar_ordem_ia, mas com contexto especifico.
|
|
Cada chamada gera uma ordem nova, picante, erotica, sem pudor.
|
|
"""
|
|
from ia_llamacpp import gerar_ordem_ia
|
|
|
|
contexto = gerar_contexto_plug_fixo_medio_ia()
|
|
params = {
|
|
"temperature": 0.85,
|
|
"max_tokens": 512,
|
|
"top_p": 0.9,
|
|
"repeat_penalty": 1.15,
|
|
}
|
|
return gerar_ordem_ia(modo="sozinho", params=params)
|
|
|
|
|
|
def gerar_ordem_plug_fixo_medio_ia_com_telegram():
|
|
"""Gera uma ordem de Plug Fixo Medio e envia para o Telegram.
|
|
|
|
Retorna o texto da ordem gerada e o status de envio do Telegram.
|
|
"""
|
|
ordem = gerar_ordem_plug_fixo_medio_ia()
|
|
telegram_ok = enviar_telegram_ordem(ordem)
|
|
return ordem, telegram_ok |