2018-12-27 20:23:45 +08:00
|
|
|
|
from nonebot import (
|
2018-07-01 17:51:01 +08:00
|
|
|
|
CommandSession, CommandGroup,
|
|
|
|
|
on_natural_language, NLPSession, NLPResult
|
|
|
|
|
)
|
2018-12-27 20:23:45 +08:00
|
|
|
|
from nonebot.helpers import render_expression as __
|
2018-06-26 08:49:08 +08:00
|
|
|
|
|
2018-12-22 12:45:15 +08:00
|
|
|
|
from . import expressions as e
|
2018-06-25 21:14:27 +08:00
|
|
|
|
|
2018-06-25 22:49:15 +08:00
|
|
|
|
w = CommandGroup('weather')
|
2018-06-25 21:14:27 +08:00
|
|
|
|
|
2018-06-25 22:49:15 +08:00
|
|
|
|
|
|
|
|
|
@w.command('weather', aliases=('天气', '天气预报'))
|
2018-06-27 22:05:12 +08:00
|
|
|
|
async def weather(session: CommandSession):
|
2018-12-22 12:45:15 +08:00
|
|
|
|
city = session.get('city', prompt=__(e.WHICH_CITY))
|
|
|
|
|
await session.send(__(e.REPORT, city=city))
|
2018-06-25 21:14:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@weather.args_parser
|
2018-06-27 22:05:12 +08:00
|
|
|
|
async def _(session: CommandSession):
|
2018-07-01 17:51:01 +08:00
|
|
|
|
striped_arg = session.current_arg_text.strip()
|
2018-06-25 21:14:27 +08:00
|
|
|
|
if session.current_key:
|
2018-07-01 17:51:01 +08:00
|
|
|
|
session.args[session.current_key] = striped_arg
|
|
|
|
|
elif striped_arg:
|
|
|
|
|
session.args['city'] = striped_arg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@on_natural_language({'天气', '雨', '雪', '晴', '阴'}, only_to_me=False)
|
|
|
|
|
async def _(session: NLPSession):
|
|
|
|
|
if not ('?' in session.msg_text or '?' in session.msg_text):
|
|
|
|
|
return None
|
|
|
|
|
return NLPResult(90.0, ('weather', 'weather'), {})
|
2018-07-01 11:01:24 +08:00
|
|
|
|
|
|
|
|
|
|
2018-06-25 22:49:15 +08:00
|
|
|
|
@w.command('suggestion', aliases=('生活指数', '生活建议', '生活提示'))
|
2018-06-27 22:05:12 +08:00
|
|
|
|
async def suggestion(session: CommandSession):
|
2018-06-25 21:14:27 +08:00
|
|
|
|
await session.send('suggestion')
|