zhenxun_bot/plugins/jitang.py

53 lines
1.8 KiB
Python
Raw Normal View History

2021-05-20 19:27:31 +08:00
from nonebot import on_command
2021-06-30 19:50:55 +08:00
from utils.user_agent import get_user_agent
2021-05-20 19:27:31 +08:00
from services.log import logger
2021-07-30 21:21:51 +08:00
from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent
2021-05-20 19:27:31 +08:00
from nonebot.typing import T_State
import aiohttp
2021-05-20 20:41:33 +08:00
from asyncio.exceptions import TimeoutError
2021-11-10 16:45:19 +08:00
from configs.config import Config
2021-05-20 19:27:31 +08:00
2021-10-03 14:24:07 +08:00
__zx_plugin_name__ = "鸡汤"
__plugin_usage__ = """
usage
不喝点什么感觉有点不舒服
指令
鸡汤
""".strip()
__plugin_des__ = "喏,亲手为你煮的鸡汤"
__plugin_cmd__ = ["鸡汤"]
__plugin_version__ = 0.1
__plugin_author__ = "HibiKier"
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["鸡汤", "毒鸡汤"],
}
2021-05-20 19:27:31 +08:00
2021-06-15 10:57:08 +08:00
url = "https://v2.alapi.cn/api/soul"
2021-05-20 19:27:31 +08:00
jitang = on_command("鸡汤", aliases={"毒鸡汤"}, priority=5, block=True)
@jitang.handle()
2021-07-30 21:21:51 +08:00
async def _(bot: Bot, event: MessageEvent, state: T_State):
2021-11-10 16:45:19 +08:00
params = {"format": "json", "token": f"{Config.get_config('alapi', 'ALAPI_TOKEN')}"}
2021-05-20 19:27:31 +08:00
try:
async with aiohttp.ClientSession(headers=get_user_agent()) as session:
2021-06-15 10:57:08 +08:00
async with session.get(url, timeout=7, params=params) as response:
if response.status == 200:
data = await response.json()
2021-07-30 21:21:51 +08:00
await jitang.send(data["data"]["content"])
2021-06-15 10:57:08 +08:00
logger.info(
2021-07-30 21:21:51 +08:00
f"(USER {event.user_id}, GROUP "
f"{event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
f" 发送鸡汤:" + data["data"]["content"]
)
2021-06-15 10:57:08 +08:00
else:
2021-07-30 21:21:51 +08:00
await jitang.send("鸡汤煮坏掉了...")
2021-05-20 20:41:33 +08:00
except TimeoutError:
await jitang.send("鸡汤煮超时了##", at_sender=True)