2021-05-20 19:23:32 +08:00
|
|
|
|
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, Event
|
|
|
|
|
|
from nonebot.typing import T_State
|
2021-06-30 19:50:55 +08:00
|
|
|
|
from utils.utils import is_number, get_message_text, UserExistLimiter, scheduler
|
2021-05-20 19:23:32 +08:00
|
|
|
|
from models.count_user import UserCount
|
|
|
|
|
|
from configs.config import COUNT_PER_DAY_REIMU
|
|
|
|
|
|
|
|
|
|
|
|
__plugin_name__ = '上车'
|
|
|
|
|
|
__plugin_usage__ = r"""
|
|
|
|
|
|
* 请各位使用后不要转发 *
|
|
|
|
|
|
* 大部分解压密码是⑨ *
|
|
|
|
|
|
/ 每人每天仅提供 5 次上车机会(只能私聊)更多次数请向管理员申请(用爱发电)限制小色批乱搜 /
|
|
|
|
|
|
/ 并不推荐小色批使用此功能(主要是不够色,目的不够明确) /
|
|
|
|
|
|
上车 [目的地]
|
|
|
|
|
|
上车 5 [目的地] 该目的地第5页停车场
|
|
|
|
|
|
ps: 请尽量提供具体的目的地名称
|
|
|
|
|
|
""".strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_ulmt = UserExistLimiter()
|
|
|
|
|
|
|
|
|
|
|
|
reimu = on_command('上车', permission=PRIVATE, block=True, priority=1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@reimu.args_parser
|
|
|
|
|
|
async def _(bot: Bot, event: Event, 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: Event, 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: Event, state: T_State):
|
|
|
|
|
|
try:
|
|
|
|
|
|
keyword = state['keyword']
|
|
|
|
|
|
page = state['page']
|
|
|
|
|
|
print(keyword, page)
|
|
|
|
|
|
await UserCount.add_count(event.user_id, 'reimu')
|
2021-06-24 15:32:06 +08:00
|
|
|
|
await reimu.send('已经帮你关好车门了,请等待发车(不加真寻好友的话是欣赏不到旅途的风景的)', at_sender=True)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
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',
|
|
|
|
|
|
# year=None,
|
|
|
|
|
|
# month=None,
|
|
|
|
|
|
# day=None,
|
|
|
|
|
|
# week=None,
|
|
|
|
|
|
# day_of_week="mon,tue,wed,thu,fri",
|
|
|
|
|
|
hour=0,
|
|
|
|
|
|
minute=1,
|
|
|
|
|
|
# second=None,
|
|
|
|
|
|
# start_date=None,
|
|
|
|
|
|
# end_date=None,
|
|
|
|
|
|
# timezone=None,
|
|
|
|
|
|
)
|
|
|
|
|
|
async def _():
|
|
|
|
|
|
await UserCount.reset_count()
|
|
|
|
|
|
|
|
|
|
|
|
|