Starboard removes starless messages

This commit is contained in:
Nexus 2023-05-04 18:12:39 +01:00
parent ffef7e7fb0
commit 047cf6ea40
Signed by: nex
GPG key ID: 0FA334385D0B689F

View file

@ -7,6 +7,7 @@ import httpx
from typing import Tuple from typing import Tuple
import discord import discord
import orm
from discord.ext import commands from discord.ext import commands
from utils.db import StarBoardMessage from utils.db import StarBoardMessage
@ -135,6 +136,25 @@ class StarBoardCog(commands.Cog):
star_count = 0 star_count = 0
else: else:
star_count = star_count[0].count star_count = star_count[0].count
if star_count == 0:
try:
database: StarBoardMessage = await StarBoardMessage.objects.get(id=payload.message_id)
except orm.NoMatch:
return
else:
channel = discord.utils.get(message.guild.text_channels, name="starboard")
if channel:
try:
message = await channel.fetch_message(database.id)
await message.delete(delay=0.1, reason="Starboard message lost all stars.")
except discord.HTTPException:
pass
finally:
await database.delete()
else:
await database.delete()
database: Tuple[StarBoardMessage, bool] = await StarBoardMessage.objects.get_or_create( database: Tuple[StarBoardMessage, bool] = await StarBoardMessage.objects.get_or_create(
{"channel": payload.channel_id}, id=payload.message_id {"channel": payload.channel_id}, id=payload.message_id
) )