insert2-cogs/misc.py
2024-10-23 20:59:33 -04:00

69 lines
No EOL
2.8 KiB
Python

import nextcord
from nextcord.ext import commands, application_checks
from nextcord import TextInputStyle
import traceback
import random
import aiosqlite as sqlite3
import aiohttp
from urllib.parse import urlparse
import os
import sys
errormsg = ["How could you do this to me!", "I tried my best...", "Maybe this will be fixed next patch", "There's always next time", "Simply processed too hard", "Perhaps this will be fixed", "You found an easter egg! Wait no it's just an error..."]
class misc(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
@commands.Cog.listener('on_application_command_error')
async def errorhandler(self, interaction: nextcord.Interaction, error: nextcord.DiscordException):
error = traceback.format_exception(type(error), error, error.__traceback__)
random.shuffle(errormsg)
strerror = "".join(error)
print(strerror, file=sys.stderr)
message = f"{errormsg[0]}\n```py\n{strerror[-1800:]}\n```\n Contact <@{self.bot.owner_id}> if the error persists"
try:
await interaction.response.send_message(message, ephemeral=True)
except:
await interaction.followup.send(message, ephemeral=True)
@nextcord.slash_command(
name="testcommand",
description="Testing user installable",
integration_types=[
nextcord.IntegrationType.user_install,
],
contexts=[
nextcord.InteractionContextType.guild,
nextcord.InteractionContextType.bot_dm,
nextcord.InteractionContextType.private_channel,
],
force_global=True,
)
async def testcmd(self, interaction: nextcord.Interaction):
await interaction.response.send_message("Hey there this is a user installable command!")
@nextcord.message_command(
name="Pin Thread Message",
guild_ids=[732793772697583623],
)
async def pinthreadmessage(self, interaction: nextcord.Interaction, message: nextcord.Message):
if message.channel.type != nextcord.ChannelType.public_thread and message.channel.type != nextcord.ChannelType.private_thread:
await interaction.response.send_message("You don't have permission in this context", ephemeral=True)
return
if message.channel.owner_id == interaction.user.id:
if message.pinned:
await message.pin()
await interaction.response.send_message("Pinned", ephemeral=True)
else:
await message.unpin()
await interaction.response.send_message("Unpinned", ephemeral=True)
else:
await interaction.response.send_message("You don't have permission in this context", ephemeral=True)
def setup(bot: commands.Bot):
bot.add_cog(misc(bot))