101 lines
3.5 KiB
Python
101 lines
3.5 KiB
Python
"""Contains the MiscCog, which deals with miscellaneous commands."""
|
|
from discord.ext import commands # Has the cog class
|
|
from discord_slash import cog_ext # Used for slash commands
|
|
from discord_slash.context import SlashContext
|
|
|
|
from gwendolyn.utils import get_params # pylint: disable=import-error
|
|
|
|
params = get_params()
|
|
|
|
|
|
class MiscCog(commands.Cog):
|
|
"""Contains the miscellaneous commands."""
|
|
|
|
def __init__(self, bot):
|
|
"""Initialize the cog."""
|
|
self.bot = bot
|
|
self.bot.remove_command("help")
|
|
self.generators = bot.other.generators
|
|
self.plex = bot.other.plex
|
|
self.nerd_shit = bot.other.nerd_shit
|
|
|
|
@cog_ext.cog_slash(**params["ping"])
|
|
async def ping(self, ctx: SlashContext):
|
|
"""Send the bot's latency."""
|
|
await ctx.send(f"Pong!\nLatency is {round(self.bot.latency * 1000)}ms")
|
|
|
|
@cog_ext.cog_slash(**params["stop"])
|
|
async def stop(self, ctx: SlashContext):
|
|
"""Stop the bot."""
|
|
await self.bot.stop(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["help"])
|
|
async def help_command(self, ctx: SlashContext, command=""):
|
|
"""Get help for commands."""
|
|
await self.bot.other.help_func(ctx, command)
|
|
|
|
@cog_ext.cog_slash(**params["thank"])
|
|
async def thank(self, ctx: SlashContext):
|
|
"""Thank the bot."""
|
|
await ctx.send("You're welcome :blush:")
|
|
|
|
@cog_ext.cog_slash(**params["hello"])
|
|
async def hello(self, ctx: SlashContext):
|
|
"""Greet the bot."""
|
|
await self.bot.other.hello_func(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["roll"])
|
|
async def roll(self, ctx: SlashContext, dice="1d20"):
|
|
"""Roll dice."""
|
|
await self.bot.other.roll_dice(ctx, dice)
|
|
|
|
@cog_ext.cog_slash(**params["image"])
|
|
async def image(self, ctx: SlashContext):
|
|
"""Get a random image from Bing."""
|
|
await self.bot.other.image_func(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["movie"])
|
|
async def movie(self, ctx: SlashContext):
|
|
"""Get a random movie from the Plex server."""
|
|
await self.bot.other.movie_func(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["name"])
|
|
async def name(self, ctx: SlashContext):
|
|
"""_generate a random name."""
|
|
await self.generators.name_gen(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["tavern"])
|
|
async def tavern(self, ctx: SlashContext):
|
|
"""_generate a random tavern name."""
|
|
await self.generators.tavern_gen(ctx)
|
|
|
|
@cog_ext.cog_slash(**params["wiki"])
|
|
async def wiki(self, ctx: SlashContext, wiki_page=""):
|
|
"""Get a page on a fandom wiki."""
|
|
await self.bot.other.find_wiki_page(ctx, page)
|
|
|
|
@cog_ext.cog_slash(**params["add_movie"])
|
|
async def add_movie(self, ctx: SlashContext, movie):
|
|
"""Search for a movie and add it to the Plex server."""
|
|
await self.plex.request_movie(ctx, movie)
|
|
|
|
@cog_ext.cog_slash(**params["add_show"])
|
|
async def add_show(self, ctx: SlashContext, show):
|
|
"""Search for a show and add it to the Plex server."""
|
|
await self.plex.request_show(ctx, show)
|
|
|
|
@cog_ext.cog_slash(**params["downloading"])
|
|
async def downloading(self, ctx: SlashContext, parameters="-d"):
|
|
"""Get the current downloading torrents."""
|
|
await self.plex.downloading(ctx, parameters)
|
|
|
|
@cog_ext.cog_slash(**params["wolf"])
|
|
async def wolf(self, ctx: SlashContext, query):
|
|
"""Perform a search on Wolfram Alpha."""
|
|
await self.nerd_shit.wolf_search(ctx, query)
|
|
|
|
|
|
def setup(bot):
|
|
"""Add the cog to the bot."""
|
|
bot.add_cog(MiscCog(bot))
|