runabot/Christmas/UI/Embed.py

153 lines
7.6 KiB
Python
Raw Normal View History

2023-11-25 17:28:48 +00:00
from typing import Any, Optional
from discord import Embed, Colour, Embed, Member
from discord.types.embed import EmbedType
from datetime import datetime
from korcen import korcen
2023-11-25 17:28:48 +00:00
class ChristmasEmbed(Embed):
def __init__(self, *,
color: int | Colour | None = 0xf4f9ff,
title: Any | None = None,
type: EmbedType = "rich",
url: Any | None = None,
description: Any | None = None,
timestamp: datetime | None = None,
):
super().__init__(
color=color,
title=title,
type=type,
url=url,
description=description,
timestamp=timestamp,
)
def set_footer(self, *, text: Any | None = "크돌이⛄", icon_url: Any | None = "https://discord.com/assets/6dbfff5aae6b1de2b83f.svg") -> None:
super().set_footer(text=text)
2023-11-25 17:28:48 +00:00
2023-11-26 04:27:34 +00:00
class Default_Embed:
@staticmethod
def default_join_embed():
embed = ChristmasEmbed(title="🎉 크돌이를 추가해주셔서 감사해요!", description="봇을 사용하기 전에 이 서버의 관리자라면 다음의 절차를 따라주세요!")
embed.add_field(name="1. 약관 동의", value="다음의 약관을 읽고 ``/서버 가입``명령어를 실행해주세요", inline=False)
embed.add_field(name="2. 설정", value="``/설정`` 명령어를 통해 크돌이의 여러 기능을 설정할수 있어요!", inline=False)
embed.add_field(name="3. 도움말", value="``/도움말`` 명령어를 통해 크돌이의 명령어를 확인할 수 있어요!", inline=False)
embed.set_footer()
return embed
@staticmethod
def register_sucess():
embed = ChristmasEmbed(title="🎉 가입 성공!", description="서버가입을 성공했어요!")
embed.add_field(name="안내", value="이제 크돌이를 즐겨보세요!", inline=False)
embed.set_footer()
return embed
@staticmethod
def register_failed():
embed = ChristmasEmbed(title="❌ 가입 실패!", description="서버가입을 실패했어요!")
embed.add_field(name="안내", value="알수없는 오류로 인해 가입에 실패했어요! 이 현상이 지속된다면 서비스 서버에 문의해주세요!", inline=False)
embed.set_footer()
return embed
2023-11-25 17:28:48 +00:00
class Mail_Embed:
@staticmethod
2023-11-26 04:27:34 +00:00
def mail_confirm(title: str, description: str, receive_user: Member) -> Embed:
embed = ChristmasEmbed(title="⚠️ 전송전 확인", description="편지를 정말로 전송하시겠습니까?")
embed.add_field(name="⚠️ 주의사항 ⚠️", value="편지는 한 번 전송하면 한번의 수정 기회 이후에는 취소할 수 없어요!\n 내용을 잘 읽고 ``전송``버튼을 눌러주세요!", inline=False)
2023-11-26 04:27:34 +00:00
embed.add_field(name="받는이", value=f"{receive_user.mention}", inline=False)
embed.add_field(name="제목", value=title, inline=False)
embed.add_field(name="내용", value=description, inline=False)
2023-11-25 17:28:48 +00:00
embed.set_footer()
return embed
@staticmethod
def mail_confirm_edit(title: str, description: str, receive_user: Member) -> Embed:
embed = ChristmasEmbed(title="⚠️ 수정전 확인", description="편지를 정말로 수정하시겠습니까?")
embed.add_field(name="⚠️ 주의사항 ⚠️", value="이번에 편지를 수정하면 다시는 수정할 수 없게 되요!\n 내용을 잘 읽고 ``전송``버튼을 눌러주세요!", inline=False)
embed.add_field(name="받는이", value=f"{receive_user.mention}", inline=False)
embed.add_field(name="제목", value=title, inline=False)
embed.add_field(name="내용", value=description, inline=False)
embed.set_footer()
return embed
@staticmethod
def mail_cant_edit():
embed = ChristmasEmbed(title="❌ 편지 수정 실패!", description="편지 수정에 실패했어요!")
embed.add_field(name="안내", value="편지는 한 번 전송하면 한번의 수정 기회 이후에는 취소할 수 없어요!", inline=False)
embed.set_footer()
return embed
2023-11-25 17:28:48 +00:00
@staticmethod
def mail_sended(receive_user: Member) -> Embed:
2023-11-26 04:27:34 +00:00
embed = ChristmasEmbed(title="✅ 전송완료!", description="편지 전송을 완료했어요!")
embed.add_field(name="안내", value="보낸 편지는 2023년 12월 25일부터 열람 가능해요!", inline=False)
embed.add_field(name="받는이", value=f"{receive_user.mention}", inline=False)
return embed
@staticmethod
def mail_edit_sended(receive_user: Member) -> Embed:
embed = ChristmasEmbed(title="✅ 수정완료!", description="편지 수정을 완료했어요!")
embed.add_field(name="안내", value="수정된 편지는 2023년 12월 25일부터 열람 가능해요!", inline=False)
2023-11-26 04:27:34 +00:00
embed.add_field(name="받는이", value=f"{receive_user.mention}", inline=False)
return embed
@staticmethod
def mail_notfound() -> Embed:
embed = ChristmasEmbed(title="❌ 편지 없음!", description="편지가 없어요!")
embed.add_field(name="안내", value="받은 편지가 없어요!", inline=False)
embed.set_footer()
return embed
@staticmethod
def mail_already_sended() -> Embed:
embed = ChristmasEmbed(title="❌ 편지 전송 실패!", description="이미 편지를 보냈어요!")
embed.add_field(name="안내", value="이미 편지를 보냈어요!", inline=False)
embed.set_footer()
return embed
@staticmethod
def mail_page(data) -> Embed:
embed = ChristmasEmbed(title="📨 편지", description="편지를 확인해보세요!(욕설등 민감한 내용이 포함된 내용은 자동으로 스포일러처리되요!)")
username = data["username"]
userid = data["userid"]
title = data["title"]
description = data["content"]
if korcen.check(title) == True:
title = "||" + title + "||"
if korcen.check(description) == True:
description = "||" + description + "||"
embed.add_field(name="보낸이", value=f"{username}({userid})", inline=False)
embed.add_field(name="제목", value=title, inline=False)
embed.add_field(name="내용", value=description, inline=False)
embed.set_footer()
return embed
class Aiart_Embed:
@staticmethod
def failed_generate() -> Embed:
embed = ChristmasEmbed(title="❌ 그림 생성 실패!", description="그림 생성에 실패했어요!")
embed.add_field(name="안내", value="그림 생성에 실패했어요! 이 현상이 지속된다면 서비스 서버에 문의해주세요!", inline=False)
embed.set_footer()
return embed
@staticmethod
def sucess_generate(prompt: str, remove: str) -> Embed:
embed = ChristmasEmbed(title="✅ 그림 생성 성공!", description="그림 생성에 성공했어요!")
embed.add_field(name="프롬포트", value=prompt, inline=False)
embed.add_field(name="지운 프롬포트", value=remove, inline=False)
embed.set_image(url="attachment://image.png")
embed.set_footer()
return embed
@staticmethod
def generating() -> Embed:
embed = ChristmasEmbed(title="그림 생성중...", description="그림을 생성하는 중이에요!")
embed.add_field(name="안내", value="그림 생성에는 최대 2분이 소요될 수 있어요!(크돌이는 돈이 없어요...)", inline=False)
embed.set_footer()
return embed