38 lines
917 B
Python
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 |