nonebot_plugin_novelai/utils/prepocess.py

38 lines
917 B
Python

import re
from ..extension.translation import translate
escape_table = {
'[': '[',
']': ']'
}
async def prepocess_tags(tags: list[str]):
tags: str = "".join([i+" " for i in tags if isinstance(i, str)])
# 去除CQ码
tags = re.sub("\[CQ[^\s]*?]", "", tags)
# 检测中文
taglist = tags.split(",")
tagzh = ""
tags_ = ""
for i in taglist:
if re.search('[\u4e00-\u9fa5]', tags):
tagzh += f"{i},"
else:
tags_ += f"{i},"
if tagzh:
tags_en = await translate(tagzh, "en")
if tags_en == tagzh:
return ""
else:
tags_ += tags_en
return await fix_char_escape(tags_)
async def combine_multi_args(args: list[str]):
return ' '.join(args)
async def fix_char_escape(tags: str):
for escape, raw in escape_table.items():
tags = tags.replace(escape, raw)
return tags