336 lines
7.4 KiB
Python
336 lines
7.4 KiB
Python
from module_interface import ModuleInterface
|
||
import random
|
||
|
||
itemPrefixes = [
|
||
"플라티나로 만든",
|
||
"신선한",
|
||
"최신의",
|
||
"고대의",
|
||
"수제",
|
||
"시계장치의",
|
||
"전설의",
|
||
"구이",
|
||
"날것의",
|
||
"미냐가 만든",
|
||
"포켓 사이즈",
|
||
"사흘 전의",
|
||
"그 근처의",
|
||
"짭",
|
||
"사용된",
|
||
"고장난",
|
||
"시판되는",
|
||
"주문제작된",
|
||
"업무용의",
|
||
"Microsoft제",
|
||
"Apple제",
|
||
"인류 기술의 결정체인",
|
||
"2021년산",
|
||
"500kg정도의",
|
||
"고오급",
|
||
"썩은",
|
||
"인공지능 탑재",
|
||
"블록체인 탑재",
|
||
"반중력",
|
||
"접이식",
|
||
"휴대용",
|
||
"유전자 재조합",
|
||
"돌연변이로 비행 능력이 있는",
|
||
"순금으로 만든",
|
||
"투명한",
|
||
"빛나는",
|
||
"하트 모양의",
|
||
"움직이는",
|
||
"반으로 잘린",
|
||
"USB 커넥터가 달린",
|
||
"지난 날의",
|
||
"저주받은",
|
||
"인챈트된",
|
||
"하루치의 비타민이 들어간",
|
||
"손을 댄",
|
||
"환상의",
|
||
"가상의",
|
||
"원자력",
|
||
"고도로 훈련받은",
|
||
"유전자 조작이 아닌",
|
||
"런던 중심부에서 발견된",
|
||
"이세계의",
|
||
"다른 별의",
|
||
"수수께끼의",
|
||
"시공을 일그러뜨리는",
|
||
"이상한 소리가 나는",
|
||
"무산된",
|
||
"플라즈마화된",
|
||
"충격을 주면 낮은 확률로 폭발하는",
|
||
"주키니로 변신한",
|
||
"가설의",
|
||
"독이 있는",
|
||
"진짜",
|
||
"궁극의",
|
||
"초코가 들어간",
|
||
"악취가 나는",
|
||
"4차원",
|
||
"박동하는",
|
||
"정체를 알 수 없는",
|
||
"네모난",
|
||
"날뛰는",
|
||
"꿈의",
|
||
"어둠의",
|
||
"암흑의",
|
||
"봉인된",
|
||
"죽음의",
|
||
"얼어버린",
|
||
"마의",
|
||
"금단의",
|
||
"홀로그래픽",
|
||
"유압식",
|
||
"부호 없는",
|
||
"지극히 평범한",
|
||
"수상할 정도로 돈이 많은",
|
||
"지원 중단된",
|
||
"말도 안 되는",
|
||
"즐거운",
|
||
"그 뭐냐...",
|
||
"뭐였더라...",
|
||
"어...",
|
||
"박식한",
|
||
"주운",
|
||
"친환경적인",
|
||
"문학적인",
|
||
"검증이 필요한",
|
||
"나이틀리 빌드의",
|
||
"와이어프레임",
|
||
"프로토타입",
|
||
"ActivityPub 표준을 따르는",
|
||
"ISO 표준에 명시된",
|
||
"정의되지 않은 동작을 수행하는",
|
||
"아마도",
|
||
"x86 어셈블리어로 짜여진",
|
||
"+𝑥 방향으로 𝐹의 힘을 받아 등가속도 운동하는 질량 𝑚의",
|
||
"넓이가 7π인",
|
||
"유료 광고가 포함된",
|
||
"여름 냄새 나는",
|
||
"적당한",
|
||
"주격 관계대명사절을 가진",
|
||
]
|
||
|
||
items = [
|
||
"가지",
|
||
"토마토",
|
||
"오이",
|
||
"감자",
|
||
"볶음국수",
|
||
"허리",
|
||
"초밥",
|
||
"호박",
|
||
"유키치",
|
||
"금괴",
|
||
"알루미늄",
|
||
"나트륨",
|
||
"마그네슘",
|
||
"플루토늄",
|
||
"작은 금속",
|
||
"우유팩",
|
||
"페트병",
|
||
"쿠키",
|
||
"초콜릿",
|
||
"메이드복",
|
||
"오렌지",
|
||
"니삭스",
|
||
"반물질 콘덴서",
|
||
"입자가속기",
|
||
"마이크로프로세서 (8코어 16스레드)",
|
||
"원자력 발전소",
|
||
"L4 스위치",
|
||
"완충 체인",
|
||
"양전자 두뇌",
|
||
"행성",
|
||
"테르민",
|
||
"충치차",
|
||
"마운터",
|
||
"버킷 휠 익스커베이터",
|
||
"데몬 코어",
|
||
"게임보이 어드밴스",
|
||
"양자컴퓨터",
|
||
"아나몰픽 렌즈",
|
||
"벽장에서 나온 수수께끼의 생물",
|
||
"스마트폰",
|
||
"시계",
|
||
"푸딩",
|
||
"가브리엘의 나팔",
|
||
"맹거의 스펀지",
|
||
"피젯 스피너",
|
||
"초입방체",
|
||
"건축물",
|
||
"에너지 드링크",
|
||
"마우스 커서",
|
||
"안경",
|
||
"참치",
|
||
"쓰레기통",
|
||
"이쑤시개",
|
||
"도시락에 들어가는 초록색 칸막이같은 녀석",
|
||
"나무젓가락",
|
||
"환기구",
|
||
"페트병의 뚜껑",
|
||
"소파 블럭",
|
||
"피자",
|
||
"치약",
|
||
"깡통",
|
||
"열쇠고리",
|
||
"금발 벽안의 미소녀",
|
||
"SD카드",
|
||
"립 크림",
|
||
"초코 없는 초코소라빵",
|
||
"조류독감",
|
||
"자판기",
|
||
"무거운 것",
|
||
"노트북",
|
||
"육포",
|
||
"연어 치즈",
|
||
"다이아몬드",
|
||
"물체",
|
||
"월석",
|
||
"특이점",
|
||
"중성자별",
|
||
"액체",
|
||
"위성",
|
||
"주키니",
|
||
"검은 것",
|
||
"흰 것",
|
||
"빨간 것",
|
||
"동그란 것",
|
||
"네모난 것",
|
||
"카드 모양의 것",
|
||
"기체",
|
||
"연필",
|
||
"지우개",
|
||
"양날검",
|
||
"막대 모양의 것",
|
||
"농산물",
|
||
"메탈 슬라임",
|
||
"문어발",
|
||
"버섯",
|
||
"나메코",
|
||
"호로요이",
|
||
"손톱깎기",
|
||
"귓속말",
|
||
"인형",
|
||
"티라노사우르스",
|
||
"요로결석",
|
||
"엔터 키",
|
||
"항아리",
|
||
"수은",
|
||
"물",
|
||
"토지",
|
||
"대륙",
|
||
"주사위",
|
||
"실외기",
|
||
"유압잭",
|
||
"타피오카",
|
||
"PSP",
|
||
"화장지 심지",
|
||
"골판지 상자",
|
||
"하니와",
|
||
"볼펜",
|
||
"샤펜",
|
||
"원자",
|
||
"우주",
|
||
"소립자",
|
||
"참기름",
|
||
"undefined",
|
||
"None",
|
||
"NAN",
|
||
"[object Object]",
|
||
"%s",
|
||
"EMP",
|
||
"비상 발전기",
|
||
"계단",
|
||
"자동차",
|
||
"그거",
|
||
"그 뭐냐 그거",
|
||
"수행평가",
|
||
"OMR 카드",
|
||
"비행선",
|
||
"바다",
|
||
"조각배",
|
||
"공인인증서",
|
||
"학교생활기록부(대입전형용)",
|
||
"건물",
|
||
"연합우주",
|
||
"편미분방정식",
|
||
"리만 제타 함수 ζ(s)",
|
||
"최고차항의 계수가 1인 다항함수 𝑓(𝑥)",
|
||
"데자와",
|
||
"콩 통조림",
|
||
"책상",
|
||
"납땜기",
|
||
"코드 조각",
|
||
"히라가나",
|
||
"사랑",
|
||
"힘",
|
||
"지식",
|
||
"낭만",
|
||
"정의",
|
||
"사회",
|
||
"우정",
|
||
"사이클로헥실설파민산나트륨",
|
||
]
|
||
|
||
ands = [
|
||
[None, None, "에 빙의한"],
|
||
[None, None, "에 들어가는"],
|
||
[None, None, "에 묻힌"],
|
||
["을", "를", " 연상시키는"],
|
||
[None, None, " 같은"],
|
||
["으로", "로", " 가장한"],
|
||
[None, None, "에 올려진"],
|
||
[None, None, " 옆에 있는"],
|
||
[None, None, "보다 나은"],
|
||
[None, None, "처럼 보이지만 사실은"],
|
||
["을", "를", " 제물로 삼아 소환한"],
|
||
["과", "와", " 미묘한 관계에 있는"],
|
||
]
|
||
|
||
from mipac.models import Note
|
||
|
||
|
||
class AiTem(ModuleInterface):
|
||
def __init__(self):
|
||
super().__init__()
|
||
self.name = "Ai-tem"
|
||
self.regex_pattern = ".*Test_AI-tem"
|
||
|
||
self.funcs["generate"] = self._generate
|
||
print("[Ai-tem] Ai-like item generator, Ai-tem V1 loaded.")
|
||
|
||
async def execute_module(self, ctx: Note):
|
||
print("[Ai-tem] test Generate Note")
|
||
await ctx.api.action.reply(str(self._generate()), visibility="home")
|
||
|
||
def _generate(self):
|
||
item1_sel = random.choice(items)
|
||
con_sel = random.choice(ands)
|
||
item1_comp = (
|
||
self.manager.require("K-Josa").get_func("process_josa")(
|
||
item1_sel, con_sel[0], con_sel[1]
|
||
)
|
||
+ con_sel[2]
|
||
)
|
||
|
||
return (
|
||
random.choice(itemPrefixes)
|
||
+ " "
|
||
+ (
|
||
(
|
||
item1_comp
|
||
+ " "
|
||
+ random.choice(itemPrefixes)
|
||
+ " "
|
||
+ random.choice(items)
|
||
)
|
||
if random.choice([True, False])
|
||
else item1_sel
|
||
)
|
||
)
|
||
|
||
def module_ready(self):
|
||
print("[Ai-tem] Module Ready.")
|