mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-18 17:35:46 +08:00
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from nonebot import (
|
||
CommandSession, CommandGroup,
|
||
on_natural_language, NLPSession, NLPResult
|
||
)
|
||
from nonebot.helpers import render_expression as __
|
||
|
||
from . import expressions as e
|
||
|
||
__plugin_name__ = '天气'
|
||
__plugin_usage__ = r"""
|
||
天气功能使用帮助
|
||
|
||
天气 [城市名称]
|
||
""".strip()
|
||
|
||
w = CommandGroup('weather')
|
||
|
||
|
||
@w.command('weather', aliases=('天气', '天气预报'))
|
||
async def weather(session: CommandSession):
|
||
city = session.get('city', prompt=__(e.WHICH_CITY))
|
||
await session.send(__(e.REPORT, city=city))
|
||
|
||
|
||
@weather.args_parser
|
||
async def _(session: CommandSession):
|
||
striped_arg = session.current_arg_text.strip()
|
||
if session.current_key:
|
||
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'), {})
|
||
|
||
|
||
@w.command('suggestion', aliases=('生活指数', '生活建议', '生活提示'))
|
||
async def suggestion(session: CommandSession):
|
||
await session.send('suggestion')
|