553 lines
20 KiB
Python
553 lines
20 KiB
Python
from telegram import Update
|
|
from telegram.ext import ContextTypes, Application, CommandHandler
|
|
from time import time
|
|
from settings import BOT_OWNER, BOT_NAME, BOT_VERSION, BOT_LANG, BOT_TYPE, BOT_OWNER_ID
|
|
from random import randint, choice
|
|
from util.messages import delete_user_message
|
|
from util.anime import Anime
|
|
|
|
class Interaction:
|
|
def __init__(self, app: Application):
|
|
self.app = app
|
|
self.anime = Anime()
|
|
|
|
app.add_handler(CommandHandler("waifu", self.waifu))
|
|
app.add_handler(CommandHandler("neko", self.neko))
|
|
app.add_handler(CommandHandler("shinobu", self.shinobu))
|
|
app.add_handler(CommandHandler("megumin", self.megumin))
|
|
app.add_handler(CommandHandler("bully", self.bully))
|
|
app.add_handler(CommandHandler("cuddle", self.cuddle))
|
|
app.add_handler(CommandHandler("cry", self.cry))
|
|
app.add_handler(CommandHandler("hug", self.hug))
|
|
app.add_handler(CommandHandler("awoo", self.awoo))
|
|
app.add_handler(CommandHandler("kiss", self.kiss))
|
|
app.add_handler(CommandHandler("lick", self.lick))
|
|
app.add_handler(CommandHandler("pat", self.pat))
|
|
app.add_handler(CommandHandler("smug", self.smug))
|
|
app.add_handler(CommandHandler("bonk", self.bonk))
|
|
app.add_handler(CommandHandler("yeet", self.yeet))
|
|
app.add_handler(CommandHandler("blush", self.blush))
|
|
app.add_handler(CommandHandler("smile", self.smile))
|
|
app.add_handler(CommandHandler("wave", self.wave))
|
|
app.add_handler(CommandHandler("highfive", self.highfive))
|
|
app.add_handler(CommandHandler("handhold", self.handhold))
|
|
app.add_handler(CommandHandler("nom", self.nom))
|
|
app.add_handler(CommandHandler("bite", self.bite))
|
|
app.add_handler(CommandHandler("glomp", self.glomp))
|
|
app.add_handler(CommandHandler("slap", self.slap))
|
|
app.add_handler(CommandHandler("kill", self.kill))
|
|
app.add_handler(CommandHandler("kick", self.kick))
|
|
app.add_handler(CommandHandler("happy", self.happy))
|
|
app.add_handler(CommandHandler("wink", self.wink))
|
|
app.add_handler(CommandHandler("poke", self.poke))
|
|
app.add_handler(CommandHandler("dance", self.dance))
|
|
app.add_handler(CommandHandler("cringe", self.cringe))
|
|
app.add_handler(CommandHandler("run", self.run))
|
|
app.add_handler(CommandHandler("fbi", self.fbi))
|
|
app.add_handler(CommandHandler("spank", self.spank))
|
|
app.add_handler(CommandHandler("ship", self.ship))
|
|
app.add_handler(CommandHandler("moan", self.moan))
|
|
app.add_handler(CommandHandler("femboize", self.femboize))
|
|
|
|
@delete_user_message
|
|
async def waifu(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("waifu")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha pedido una waifu"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def neko(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("neko")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha pedido un neko"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def shinobu(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("shinobu")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha pedido una shinobu"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def megumin(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("megumin")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha pedido una megumin"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def bully(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("bully")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha hecho bullying a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def cuddle(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("cuddle")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha acurrucado con {user} uwu"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def cry(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("cry")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha puesto a llorar :("
|
|
)
|
|
|
|
@delete_user_message
|
|
async def hug(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("hug")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha abrazado a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def awoo(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("awoo")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} es un puto furro y ha pedido una foto de un furro"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def kiss(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("kiss")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha besado a {user} >///<"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def lick(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("lick")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha lamido a {user} OwO"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def pat(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("pat")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha acariciado a {user} >.<"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def smug(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("smug")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha chuleado de {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def bonk(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("bonk")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha hecho bonk a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def yeet(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("yeet")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha lanzado a {user} a chuparla XD"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def blush(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("blush")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha sonrojado >///<"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def smile(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("smile")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha sonreido"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def wave(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("wave")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha saludado a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def highfive(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("highfive")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} a chocado a {user} ;D"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def handhold(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("handhold")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha cogido la manita a {user} u.u"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def nom(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("nom")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha puesto a comer algo rico"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def bite(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("bite")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha mordido a {user} ùwú"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def glomp(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("glomp")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha abalanzado sobre {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def slap(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("slap")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha dado una bofetada a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def kill(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("kill")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} ha matado a {user} 💀"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def kick(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("kick")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha pegado una patada a {user}"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def happy(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("happy")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} está feliz :D"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def wink(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("wink")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} le ha guiñado el ojo a {user} ;)"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def poke(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
url = self.anime.sfw("poke")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} está molestando a {user} ù.ú"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def dance(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
url = self.anime.sfw("dance")
|
|
await update.effective_chat.send_animation(
|
|
animation=url,
|
|
caption=f"{update.effective_sender.first_name} se ha puesto a bailar"
|
|
)
|
|
|
|
@delete_user_message
|
|
async def cringe(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
caption=f"{update.effective_sender.first_name} le ha dado cringe lo que ha dicho {user}"
|
|
with open("data/images/interaction/cringe.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
|
|
@delete_user_message
|
|
async def run(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
caption = f"{update.effective_sender.first_name} ha huido"
|
|
with open("data/images/interaction/run.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
@delete_user_message
|
|
async def fbi(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
caption = f"{update.effective_sender.first_name} ha llamado al FBI! Corre {user}!!!!"
|
|
with open("data/images/interaction/fbi.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
@delete_user_message
|
|
async def spank(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
caption = f"{update.effective_sender.first_name} le ha dado una nalgada a {user}"
|
|
with open("data/images/interaction/spank.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
@delete_user_message
|
|
async def ship(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar dos usuarios"
|
|
)
|
|
return
|
|
|
|
user1 = context.args[0]
|
|
user2 = context.args[1]
|
|
caption = f"{user1} x {user2} tienen una compatibilidad del {randint(0,100)}%"
|
|
with open("data/images/interaction/ship.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
@delete_user_message
|
|
async def moan(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
caption = f"{update.effective_sender.first_name} ha gemido como una perra"
|
|
with open("data/images/interaction/moan.gif", "rb") as gif:
|
|
await update.effective_chat.send_animation(
|
|
animation=gif,
|
|
caption=caption,
|
|
disable_notification=True
|
|
)
|
|
|
|
@delete_user_message
|
|
async def femboize(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not context.args:
|
|
await update.effective_chat.send_message(
|
|
text=f"Debes especificar un usuario"
|
|
)
|
|
return
|
|
|
|
|
|
user = context.args[0]
|
|
caption = f"{update.effective_sender.first_name} ha convertido en femboy a {user}"
|
|
with open("data/images/interaction/femboy.png", "rb") as png:
|
|
await update.effective_chat.send_photo(
|
|
photo=png,
|
|
caption=caption,
|
|
disable_notification=True
|
|
) |