zhenxun_bot/plugins/reimu/__init__.py
2021-10-03 14:24:07 +08:00

99 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from nonebot import on_command
from nonebot.adapters.cqhttp.permission import PRIVATE
from .data_source import from_reimu_get_info
from services.log import logger
from nonebot.adapters.cqhttp import Bot, PrivateMessageEvent
from nonebot.typing import T_State
from utils.utils import is_number, get_message_text, UserBlockLimiter, scheduler
from models.count_user import UserCount
from configs.config import COUNT_PER_DAY_REIMU, NICKNAME
__zx_plugin_name__ = "上车"
__plugin_usage__ = """
usage
* 请各位使用后不要转发 *
* 大部分解压密码是⑨ *
/ 并不推荐小色批使用此功能[主要是不够色,目的不够明确] /
指令:
上车 ?[page] [目的地]
示例:上车 萝莉
示例:上车 5 萝莉: 该目的地第5页停车场
ps: 请尽量提供具体的目的地名称
""".strip()
__plugin_des__ = "都坐稳了,老司机焊死了车门![仅限私聊]"
__plugin_cmd__ = ["上车 ?[page] [目的地]"]
__plugin_version__ = 0.1
__plugin_author__ = "HibiKier"
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["上车"],
}
_ulmt = UserBlockLimiter()
reimu = on_command("上车", permission=PRIVATE, block=True, priority=1)
@reimu.args_parser
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
if get_message_text(event.json()) in ["取消", "算了"]:
await reimu.finish("已取消操作..", at_sender=True)
if not get_message_text(event.json()):
await reimu.reject("没时间等了!快说你要去哪里?", at_sender=True)
state["keyword"] = get_message_text(event.json())
state["page"] = 1
@reimu.handle()
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
if str(event.get_message()) in ["帮助"]:
await reimu.finish(__plugin_usage__)
if await UserCount.check_count(event.user_id, "reimu", COUNT_PER_DAY_REIMU):
await reimu.finish("今天已经没车了,请明天再来...", at_sender=True)
if _ulmt.check(event.user_id):
await reimu.finish("您还没下车呢,请稍等...", at_sender=True)
_ulmt.set_true(event.user_id)
msg = get_message_text(event.json())
args = msg.split(" ")
if msg in ["!", "", "?", "", ",", "", ".", ""]:
await reimu.finish(__plugin_usage__)
if msg:
if len(args) > 1 and is_number(args[0]):
state["keyword"] = args[1]
state["page"] = args[0]
else:
state["keyword"] = msg
state["page"] = 1
@reimu.got("keyword", "你的目的地是哪?")
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
try:
keyword = state["keyword"]
page = state["page"]
await UserCount.add_count(event.user_id, "reimu")
await reimu.send(
f"已经帮你关好车门了,请等待发车(不加{NICKNAME}好友的话是欣赏不到旅途的风景的)", at_sender=True
)
reimu_report = await from_reimu_get_info(keyword, page)
if reimu_report:
await reimu.send(reimu_report)
else:
logger.error("Not found reimuInfo")
await reimu.send("没找着")
_ulmt.set_false(event.user_id)
except:
_ulmt.set_false(event.user_id)
@scheduler.scheduled_job(
"cron",
hour=0,
minute=1,
)
async def _():
await UserCount.reset_count()