diff options
Diffstat (limited to 'ATRI/plugins/essential/data_source.py')
-rw-r--r-- | ATRI/plugins/essential/data_source.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ATRI/plugins/essential/data_source.py b/ATRI/plugins/essential/data_source.py new file mode 100644 index 0000000..8274db0 --- /dev/null +++ b/ATRI/plugins/essential/data_source.py @@ -0,0 +1,29 @@ +from typing import Union + +from ATRI.utils import MessageChecker +from ATRI.message import MessageSegment + + +def recall_msg_dealer(message: Union[dict, str]) -> str: + if isinstance(message, str): + return message + + cache_list = list() + for i in message: + _type = i.get("type") + _data = i.get("data") + if _type == "text": + cache_list.append(_data["text"]) + elif _type == "image": + url = _data["url"] + check = MessageChecker(url).check_image_url + if check: + cache_list.append(MessageSegment.image(url)) + else: + cache_list.append(f"[该图片可能包含危险内容, 源url: {url}]") + elif _type == "face": + cache_list.append(MessageSegment.face(_data["id"])) + else: + cache_list.append(f"[未知类型信息: {_data}]") + + return str().join(map(str, cache_list))
\ No newline at end of file |