error handling, rimas en otra función
This commit is contained in:
136
main.py
136
main.py
@@ -1,136 +0,0 @@
|
|||||||
import discord
|
|
||||||
from discord.ext import commands
|
|
||||||
import os
|
|
||||||
import random
|
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
intents = discord.Intents.all()
|
|
||||||
intents.members = True
|
|
||||||
|
|
||||||
bot = commands.Bot(intents=intents)
|
|
||||||
NL = "\n"
|
|
||||||
PREFIX = "f!"
|
|
||||||
|
|
||||||
cmds = []
|
|
||||||
|
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_ready():
|
|
||||||
print(f"Bot vivo! \nUsuario: {bot.user}")
|
|
||||||
await bot.user.edit(username="GIFbot")
|
|
||||||
await bot.change_presence(
|
|
||||||
status=discord.Status.online,
|
|
||||||
activity=discord.Activity(
|
|
||||||
type=discord.ActivityType.playing,
|
|
||||||
name="f!helpme para obtener la lista de comandos"))
|
|
||||||
channel = bot.get_channel(1153429735527948399)
|
|
||||||
msg = await channel.fetch_message(1153429808429158460)
|
|
||||||
print(f"características actuales: {msg.content}")
|
|
||||||
await send_log(f"hora de inicio: {time.ctime(time.time())}")
|
|
||||||
|
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_message(message):
|
|
||||||
for cmd in cmds:
|
|
||||||
if message.content.startswith(f'{PREFIX}{cmd[0]}'):
|
|
||||||
await message.channel.send(random.choice(cmd[1]))
|
|
||||||
break
|
|
||||||
|
|
||||||
if message.content.startswith(f'{PREFIX}helpme'):
|
|
||||||
await message.channel.send(make_help())
|
|
||||||
|
|
||||||
elif message.content.lower().endswith("murciano"):
|
|
||||||
ctx = await bot.get_context(message)
|
|
||||||
await ctx.reply("Me la agarras con la mano", mention_author=True, delete_after=5)
|
|
||||||
|
|
||||||
elif message.content.lower().endswith(("cinco", "5", "25", "veinticinco")):
|
|
||||||
ctx = await bot.get_context(message)
|
|
||||||
await ctx.reply("Por el culo te la hinco", mention_author=True, delete_after=5)
|
|
||||||
|
|
||||||
elif message.content.lower().endswith(("ocho", "8")) and not message.content.lower().endswith("endocho"):
|
|
||||||
ctx = await bot.get_context(message)
|
|
||||||
await ctx.reply("Por el culo te la endocho", mention_author=True, delete_after=5)
|
|
||||||
|
|
||||||
elif message.content.lower().endswith(("trece", "13")):
|
|
||||||
ctx = await bot.get_context(message)
|
|
||||||
await ctx.reply("Agárramela que me crece", mention_author=True, delete_after=5)
|
|
||||||
|
|
||||||
@bot.command(description=f"Añade una característica más de {os.environ['N1']} o {os.environ['N2']}!")
|
|
||||||
async def add(ctx, attr: str, user: discord.Option(choices=[os.environ['N1'], os.environ['N2']])):
|
|
||||||
msg = 0
|
|
||||||
if user == os.environ['N1']:
|
|
||||||
channel = bot.get_channel(1166495380003889232)
|
|
||||||
msg = await channel.fetch_message(1167496435944652891)
|
|
||||||
|
|
||||||
elif user == os.environ['N2']:
|
|
||||||
channel = bot.get_channel(1153429735527948399)
|
|
||||||
msg = await channel.fetch_message(1153429808429158460)
|
|
||||||
|
|
||||||
if attr.lower() not in msg.content.lower():
|
|
||||||
await msg.edit(content=f'{msg.content}\n- {attr}')
|
|
||||||
await ctx.respond(f"Característica añadida! ", ephemeral=True)
|
|
||||||
await send_log(f"Característica añadida: {attr} por {ctx.user}")
|
|
||||||
|
|
||||||
else:
|
|
||||||
await ctx.respond("Característica ya añadida!", ephemeral=True)
|
|
||||||
|
|
||||||
|
|
||||||
@bot.command(description=f"Borrar una característica de {os.environ['N1']} o {os.environ['N2']} (sólo admins)")
|
|
||||||
async def delete(ctx, attr: str, user: discord.Option(choices=[os.environ['N1'], os.environ['N2']])):
|
|
||||||
msg = 0
|
|
||||||
role = discord.utils.get(ctx.guild.roles, name="Admin")
|
|
||||||
foca = 518377522485002241
|
|
||||||
if ctx.author.id == foca or role in ctx.author.roles or ctx.author.id != os.environ['AID'] or ctx.author.id != os.environ['JID']:
|
|
||||||
if user == os.environ['N1']:
|
|
||||||
channel = bot.get_channel(1166495380003889232)
|
|
||||||
msg = await channel.fetch_message(1167496435944652891)
|
|
||||||
|
|
||||||
elif user == os.environ['N2']:
|
|
||||||
channel = bot.get_channel(1153429735527948399)
|
|
||||||
msg = await channel.fetch_message(1153429808429158460)
|
|
||||||
|
|
||||||
await msg.edit(content=f'{msg.content.replace(f"{NL}- {attr}", "")}')
|
|
||||||
await ctx.respond("Característica eliminada :(", ephemeral=True)
|
|
||||||
await send_log(f"Característica eliminada: {attr} por {ctx.user}")
|
|
||||||
return
|
|
||||||
|
|
||||||
else:
|
|
||||||
await ctx.respond("No tienes permiso para hacerlo!", ephemeral=True)
|
|
||||||
return
|
|
||||||
|
|
||||||
if attr.lower() not in msg.content.lower():
|
|
||||||
await ctx.respond("Característica no encontrada.", ephemeral=True)
|
|
||||||
|
|
||||||
|
|
||||||
async def send_log(msg):
|
|
||||||
channel = bot.get_channel(1153800096761262152)
|
|
||||||
await channel.send(msg)
|
|
||||||
|
|
||||||
|
|
||||||
def parse_cmds(f):
|
|
||||||
cmd_file = open(f)
|
|
||||||
for line in cmd_file.readlines():
|
|
||||||
if len(line.rstrip()) == 0:
|
|
||||||
continue
|
|
||||||
cmd = line.split(" ")[0]
|
|
||||||
links = [_ for _ in line.split()[1:]]
|
|
||||||
cmds.append((cmd, links))
|
|
||||||
|
|
||||||
|
|
||||||
def make_help():
|
|
||||||
help = ("helpme", f"""El prefijo de este bot es: f!
|
|
||||||
|
|
||||||
Los comandos son:
|
|
||||||
{NL.join(_[0] for _ in cmds)}
|
|
||||||
|
|
||||||
Disfrutad del bot
|
|
||||||
\~\~Mike & BinLAB\~\~
|
|
||||||
""")
|
|
||||||
return help[1]
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
parse_cmds("cmds.txt")
|
|
||||||
make_help()
|
|
||||||
bot.run(os.environ['TOKEN'])
|
|
||||||
Reference in New Issue
Block a user