You've already forked JapariArchive
105 lines
5.3 KiB
Python
105 lines
5.3 KiB
Python
from __future__ import annotations
|
|
import nextcord
|
|
from nextcord.ui import View
|
|
from Database.x_classes import ActionTaken
|
|
from Discord import discordHelper
|
|
|
|
from typing import TYPE_CHECKING
|
|
if TYPE_CHECKING:
|
|
from runtimeBotData import RuntimeBotData
|
|
|
|
class XView(View):
|
|
def __init__(self, botData : RuntimeBotData):
|
|
self.botData = botData
|
|
super().__init__(timeout=None, prevent_update=False)
|
|
|
|
@nextcord.ui.button(label="KF Art", custom_id="button-keep", style=nextcord.ButtonStyle.gray)
|
|
async def button_keep(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.embeds[0].author.url, self.botData)
|
|
self.botData.db.x_update_post(x_post_id, main_post.id, 0, ActionTaken.Accepted)
|
|
await discordHelper.edit_existing_embed_color(main_post, nextcord.Colour.green())
|
|
await self_message.edit(view=None)
|
|
|
|
@nextcord.ui.button(label="Non-KF Art", custom_id="button-hide", style=nextcord.ButtonStyle.gray)
|
|
async def button_hide(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.embeds[0].author.url, self.botData)
|
|
self.botData.db.x_update_post(x_post_id, main_post.id, 0, ActionTaken.Hidden)
|
|
await discordHelper.edit_existing_embed_color(main_post, nextcord.Colour.yellow())
|
|
await self_message.delete()
|
|
|
|
@nextcord.ui.button(label="Delete", custom_id="button-delete", style=nextcord.ButtonStyle.gray)
|
|
async def button_delete(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
try:
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.embeds[0].author.url, self.botData)
|
|
print("Deleting", x_post_id, main_post.jump_url)
|
|
|
|
await main_post.delete()
|
|
await self_message.delete()
|
|
|
|
self.botData.db.x_update_post(x_post_id, 0, 0, ActionTaken.Rejected)
|
|
except Exception as e:
|
|
await interaction.response.send_message("Error occured " + str(e), ephemeral=False)
|
|
|
|
class YView(View):
|
|
|
|
def __init__(self, botData : RuntimeBotData):
|
|
self.botData = botData
|
|
super().__init__(timeout=None, prevent_update=False)
|
|
|
|
@nextcord.ui.button(label="KF Art", custom_id="y-button-keep", style=nextcord.ButtonStyle.gray)
|
|
async def button_keep(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.content.split(" ")[1], self.botData)
|
|
self.botData.db.x_update_post(x_post_id, main_post.id, 0, ActionTaken.Accepted)
|
|
await discordHelper.edit_existing_embed_color(main_post, nextcord.Colour.green())
|
|
await self_message.edit(view=None)
|
|
|
|
@nextcord.ui.button(label="Non-KF Art", custom_id="y-button-hide", style=nextcord.ButtonStyle.gray)
|
|
async def button_hide(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.content.split(" ")[1], self.botData)
|
|
self.botData.db.x_update_post(x_post_id, main_post.id, 0, ActionTaken.Hidden)
|
|
await discordHelper.edit_existing_embed_color(main_post, nextcord.Colour.yellow())
|
|
await self_message.delete()
|
|
|
|
@nextcord.ui.button(label="Delete", custom_id="y-button-delete", style=nextcord.ButtonStyle.gray)
|
|
async def button_delete(self, button, interaction : nextcord.Interaction):
|
|
if not discordHelper.check_permission(interaction):
|
|
await interaction.response.send_message("No permission", ephemeral=True)
|
|
return
|
|
|
|
try:
|
|
self_message = interaction.message
|
|
main_post, x_post_id = await discordHelper.get_main_post_and_data(interaction.guild, self_message.content.split(" ")[1], self.botData)
|
|
print("Deleting", x_post_id, main_post.jump_url)
|
|
|
|
await main_post.delete()
|
|
await self_message.delete()
|
|
|
|
self.botData.db.x_update_post(x_post_id, 0, 0, ActionTaken.Rejected)
|
|
except Exception as e:
|
|
await interaction.response.send_message("Error occured " + str(e), ephemeral=False)
|
|
|