diff options
author | Kyomotoi <[email protected]> | 2021-04-24 16:20:19 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2021-04-24 16:20:19 +0800 |
commit | e01b1ed882a01d03b763e9b06b8b5d0608fc5f21 (patch) | |
tree | a2226a4c1c505f66d5226a1ddae02038ad92a046 /ATRI/plugins/hitokoto.py | |
parent | 0678347859176671d5ff11852f339336a595e2f5 (diff) | |
download | ATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.tar.gz ATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.tar.bz2 ATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.zip |
✨🔥🎨🐛♻️📝 更新
新增:开发工具中ub paste,再也不怕长消息了。
新增:错误处理两项`ReadFileError`、`FormatError`
修复:bot退群显示被自己踢出群
删除:Service部分内容
删除:hitokoto本地库,改用请求
优化:b站小程序抓取
重构:bot管理部分,对命令进行简化
Diffstat (limited to 'ATRI/plugins/hitokoto.py')
-rw-r--r-- | ATRI/plugins/hitokoto.py | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/ATRI/plugins/hitokoto.py b/ATRI/plugins/hitokoto.py index 83469be..2b8d81f 100644 --- a/ATRI/plugins/hitokoto.py +++ b/ATRI/plugins/hitokoto.py @@ -1,16 +1,18 @@ -import os import json -from pathlib import Path from random import choice, randint from nonebot.adapters.cqhttp import Bot, MessageEvent from ATRI.rule import is_in_service, to_bot from ATRI.service import Service as sv -from ATRI.exceptions import LoadingError +from ATRI.exceptions import RequestTimeOut from ATRI.utils.list import count_list, del_list_aim +from ATRI.utils.request import get_bytes - -HITOKOTO_DIR = Path('.') / 'ATRI' / 'data' / 'database' / 'hitokoto' +URL = [ + "https://cdn.jsdelivr.net/gh/hitokoto-osc/[email protected]/sentences/a.json", + "https://cdn.jsdelivr.net/gh/hitokoto-osc/[email protected]/sentences/b.json", + "https://cdn.jsdelivr.net/gh/hitokoto-osc/[email protected]/sentences/c.json" +] sick_list = [] @@ -18,17 +20,14 @@ __doc__ = """ 抑郁一下 权限组:所有人 用法: - @一言 - @抑郁一下 - @网抑云 -补充: - @:at Bot + @ 一言 """ hitokoto = sv.on_command( cmd='一言', + aliases={'抑郁一下', '网抑云'}, docs=__doc__, - rule=is_in_service('一言') + rule=is_in_service('一言') & to_bot() ) @hitokoto.handle() @@ -36,10 +35,6 @@ async def _hitokoto(bot: Bot, event: MessageEvent) -> None: global sick_list msg = str(event.message) user = event.get_user_id() - hito_key = ['一言', '抑郁一下', '网抑云'] - - if msg not in hito_key: - return if count_list(sick_list, user) == 3: sick_list.append(user) @@ -53,11 +48,9 @@ async def _hitokoto(bot: Bot, event: MessageEvent) -> None: await hitokoto.finish(msg) else: sick_list.append(user) - rd = choice(os.listdir(HITOKOTO_DIR)) - path = HITOKOTO_DIR / rd - data = {} + url = choice(URL) try: - data = json.loads(path.read_bytes()) - except LoadingError: - raise LoadingError("Loading error!") + data = json.loads(await get_bytes(url)) + except RequestTimeOut: + raise RequestTimeOut("Request failed!") await hitokoto.finish(data[randint(1, len(data) - 1)]['hitokoto']) |