nonebot2/demo/plugins/weather/__init__.py

44 lines
1.2 KiB
Python
Raw Normal View History

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
2019-01-21 10:39:06 +08:00
__plugin_name__ = '天气'
__plugin_usage__ = r"""
天气功能使用帮助
天气 [城市名称]
""".strip()
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')