Add star delete, closes #46

This commit is contained in:
Zeva Rose 2021-07-16 18:03:04 -06:00
parent 0519dbd91f
commit 6af3099b47

View file

@ -2,12 +2,13 @@ from datetime import datetime
import aiohttp
import discord
import jarvis
from discord import Message, TextChannel
from discord.ext import commands
from discord.utils import find
from discord_slash import SlashContext, cog_ext
from discord_slash.utils.manage_commands import create_option
import jarvis
from jarvis.config import get_config
from jarvis.utils import build_embed
from jarvis.utils.db import DBManager
@ -238,6 +239,70 @@ class StarboardCog(commands.Cog):
"Message saved to Starboard.\n" + f"See it in {starboard.mention}"
)
@cog_ext.cog_subcommand(
base="star",
name="delete",
description="Delete a starred message",
guild_ids=[
862402786116763668,
418094694325813248,
578757004059738142,
],
options=[
create_option(
name="id",
description="Star to delete",
option_type=4,
required=True,
),
create_option(
name="starboard",
description="Starboard to delete star from",
option_type=7,
required=True,
),
],
)
async def _star_get(
self,
ctx: SlashContext,
id: int,
starboard: TextChannel,
):
exists = self.db.jarvis.starboard.find_one(
{"target": starboard.id, "guild": ctx.guild.id}
)
if not exists:
await ctx.send(
f"Starboard does not exist in {starboard.mention}. "
+ "Please create it first",
hidden=True,
)
return
star = self.db.jarvis.stars.find_one(
{
"starboard": starboard.id,
"id": id,
"guild": ctx.guild.id,
"active": True,
}
)
if not star:
await ctx.send(f"No star exists with id {id}", hidden=True)
return
message = await starboard.fetch_message(star["star"])
if message:
await message.delete()
self.db.jarvis.stars.update_one(
{"starboard": starboard.id, "id": id, "guild": ctx.guild.id},
{"$set": {"active": False}},
)
await ctx.send(f"Star {id} deleted")
def setup(bot):
bot.add_cog(StarboardCog(bot))