Converting gitlab issue and roll dice functions to slash commands

This commit is contained in:
Luke Robles 2022-10-26 08:32:12 -07:00
parent ee97fdf395
commit a79c2409ab
4 changed files with 38 additions and 57 deletions

View File

@ -35,11 +35,26 @@ class ActualUtils(commands.Cog):
await ctx.defer()
await ctx.followup.send(result)
@commands.command(name="issue")
@commands.slash_command(
guild_ids=core_utils.my_guilds,
name="issue",
description="Files an issue on gitlab",
)
@option(name="title", requried=True, description="The title of the issue")
@option(name="description", require=True, description="The body of the issue")
async def issue(self, ctx: commands.Context):
import gitlab
await ctx.send(gitlab.parse_message(ctx.message))
post_args = {"title": title, "description": description}
headers = {"PRIVATE-TOKEN": os.getenv("gitlab_token")}
r = requests.post(
"https://git.luker.gq/api/v4/projects/3/issues",
data=post_args,
headers=headers,
)
await ctx.respond(r.json()["web_url"])
@commands.command(name="tts")
async def tts(self, ctx: commands.Context):
@ -67,7 +82,7 @@ class ActualUtils(commands.Cog):
required=True,
description="The query you want to pass to wolfram alpha",
)
async def ask(self, ctx, query):
async def wolfram(self, ctx, query):
import questions
await ctx.defer()
@ -75,17 +90,6 @@ class ActualUtils(commands.Cog):
questions.answer_question(query),
)
@commands.command(name="openai")
async def openai(self, ctx: commands.Context, *, query):
if ctx.message.author.id != core_utils.my_id:
await ctx.send("Sorry, this is a paid dale-bot feature")
return
import questions
await ctx.reply(
questions.open_ai(query),
)
@commands.has_role("Track day gamers")
@commands.slash_command(
guild_ids=core_utils.my_guilds,

View File

@ -71,17 +71,23 @@ class Cheeky(commands.Cog):
await ctx.respond(embed=embed)
@commands.command(name="roll")
@commands.slash_command(
guild_ids=None, name="roll", decide="Roll X number of N sided die", type=int
)
@option(name="num_of_dies", required=True, type=int)
@option(name="sides", required=True, description="Number of sides on your die")
@option(
name="number_to_add",
description="An optional number to add to your roll",
required=False,
default=None,
)
async def roll(
self, ctx: commands.Context, number_of_die, sides, number_to_add=None
):
import dice
sides = sides.split("d")[1]
if "+" in ctx.message.content:
number_to_add = int(ctx.message.content.split("+")[-1])
await ctx.reply(embed=dice.roll(number_of_die, sides, number_to_add))
await ctx.respond(embed=dice.roll(number_of_die, sides, number_to_add))
@commands.command(name="excuse")
async def excuse(self, ctx: commands.Context):

View File

@ -22,12 +22,17 @@ def roll(number_of_die, sides, number_to_add=None):
embed_color = 15844367
embed = discord.Embed(description=None, color=embed_color, type="rich")
embed.set_author(name="Rolling %s %s sided die" % (number_of_die, sides))
embed.set_author(name="Rolling %s, %s sided die" % (number_of_die, sides))
embed.add_field(name="Rolls", value=results, inline=False)
if number_to_add:
number_to_add = int(number_to_add)
embed.set_author(
name="Rolling %s, %s sided die, and adding %s"
% (number_of_die, sides, number_to_add)
)
embed.add_field(
name="**Total**",
value=":game_die: %s+%s = %s"
value=":game_die: %d+%d = %d"
% (sum(results), number_to_add, (sum(results) + number_to_add)),
inline=False,
)

View File

@ -1,34 +0,0 @@
import requests
import os
import help_methods
import role_check
def create_issue(title, description):
post_args = {"title": title, "description": description}
headers = {"PRIVATE-TOKEN": os.getenv("gitlab_token")}
r = requests.post(
"https://git.luker.gq/api/v4/projects/3/issues", data=post_args, headers=headers
)
return r.json()["web_url"]
def parse_message(message):
if len(message.content.split()) == 1:
return help_methods.get_help_message(method="issue")
try:
message = " ".join(message.content.split()[1:])
title, description = message.split(";")
except Exception:
return help_methods.get_help_message(method="issue")
try:
return create_issue(title=title, description=description)
except Exception:
return help_methods.get_help_message(method="issue")