feat(issues): implemented submit_issue_request
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 5s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 5s
This commit is contained in:
parent
83b7c3f17e
commit
246242ad71
1 changed files with 14 additions and 18 deletions
|
@ -1,6 +1,5 @@
|
|||
from typing import Union
|
||||
from redbot.core import commands, Config, app_commands
|
||||
import discord
|
||||
from redbot.core import Config, app_commands, commands
|
||||
|
||||
class Issues(commands.Cog):
|
||||
"""This cog allows you to create Gitea issues through a Discord modal.
|
||||
|
@ -19,23 +18,15 @@ class Issues(commands.Cog):
|
|||
passed_info = interaction
|
||||
await interaction.response.send_message(content="Hello world!", view=self.IssueButtons(passed_info), ephemeral=True)
|
||||
|
||||
async def send_to_target(self, target: Union[discord.Member, discord.TextChannel], interaction: discord.Interaction, message: str, secondary_message: str = None):
|
||||
if isinstance(target, discord.Member):
|
||||
target_type = "member"
|
||||
elif isinstance(target, discord.TextChannel):
|
||||
target_type = "textchannel"
|
||||
async def submit_issue_request(self, interaction: discord.Interaction, embed: discord.Embed):
|
||||
channel = self.bot.get_channel(self.config.channel())
|
||||
if channel is None:
|
||||
await interaction.response.send_message(content=f"The cog is misconfigured, please report this error.", ephemeral=True)
|
||||
try:
|
||||
await target.send(message)
|
||||
if secondary_message is not None:
|
||||
await target.send(secondary_message)
|
||||
await interaction.response.send_message(content=f"Message sent to {target.mention}!\nMessage contents:\n```{message}```\n```{secondary_message}```", ephemeral=True)
|
||||
else:
|
||||
await interaction.response.send_message(content=f"Message sent to {target.mention}!\nMessage contents:\n```{message}```", ephemeral=True)
|
||||
await channel.send(embed=embed)
|
||||
await interaction.response.send_message(content=f"Issue request sent!", embed=embed, ephemeral=True)
|
||||
except (discord.HTTPException, discord.Forbidden) as error:
|
||||
if target_type == "member":
|
||||
await interaction.response.send_message(content="That user has their direct messages closed!", ephemeral=True)
|
||||
elif target_type == "textchannel":
|
||||
await interaction.response.send_message(content="I cannot access that channel!", ephemeral=True)
|
||||
await interaction.response.send_message(content=f"The cog is misconfigured, please report this error.\n```{error}```", ephemeral=True)
|
||||
|
||||
class IssueButtons(discord.ui.View):
|
||||
def __init__(self, passed_info):
|
||||
|
@ -98,4 +89,9 @@ class Issues(commands.Cog):
|
|||
value = item.value
|
||||
if value is not None:
|
||||
embed.add_field(title, value)
|
||||
await interaction.response.send_message(embed=embed)
|
||||
if interaction.user.discriminator == 0:
|
||||
username = interaction.user.name
|
||||
else:
|
||||
username = f"{interaction.user.name}#{interaction.user.discriminator}"
|
||||
embed.set_footer(text=f"Submitted by {username} ({interaction.user.id})", icon_url=interaction.user.display_avatar.url)
|
||||
await Issues.submit_issue_request(self, interaction=interaction, embed=embed)
|
||||
|
|
Loading…
Reference in a new issue