mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-27 08:11:38 +00:00
Rename none_demo to demo
This commit is contained in:
29
demo/plugins/groupadmin.py
Normal file
29
demo/plugins/groupadmin.py
Normal file
@ -0,0 +1,29 @@
|
||||
from aiocqhttp import Error as CQHttpError
|
||||
|
||||
from none import on_notice, NoticeSession, on_request, RequestSession
|
||||
|
||||
GROUP_GREETING = (
|
||||
'欢迎新同学 {name}[]![CQ:face,id=63][CQ:face,id=63][CQ:face,id=63]',
|
||||
'[CQ:face,id=99]欢迎新成员~',
|
||||
'欢迎 {name}👏👏~',
|
||||
'[CQ:at,qq={user_id}] 欢迎欢迎👏',
|
||||
)
|
||||
|
||||
|
||||
@on_notice('group_increase')
|
||||
async def _(session: NoticeSession):
|
||||
if session.ctx['group_id'] not in (201865589, 672076603):
|
||||
return
|
||||
try:
|
||||
info = await session.bot.get_group_member_info(**session.ctx,
|
||||
no_cache=True)
|
||||
name = info['card'] or info['nickname'] or '新成员'
|
||||
await session.send_expr(GROUP_GREETING, name=name, **session.ctx)
|
||||
except CQHttpError:
|
||||
pass
|
||||
|
||||
|
||||
@on_request('group')
|
||||
async def _(session: RequestSession):
|
||||
if session.ctx['group_id'] == 672076603:
|
||||
await session.approve()
|
20
demo/plugins/repeater.py
Normal file
20
demo/plugins/repeater.py
Normal file
@ -0,0 +1,20 @@
|
||||
from none import on_natural_language, NLPSession, NLPResult
|
||||
|
||||
_last_session = None
|
||||
|
||||
|
||||
@on_natural_language(only_to_me=False)
|
||||
async def _(session: NLPSession):
|
||||
if session.ctx.get('group_id') != 672076603:
|
||||
return None
|
||||
|
||||
global _last_session
|
||||
result = None
|
||||
if _last_session and \
|
||||
_last_session.ctx['user_id'] != session.ctx['user_id'] and \
|
||||
_last_session.msg == session.msg:
|
||||
result = NLPResult(61.0, 'echo', {'message': _last_session.msg})
|
||||
_last_session = None
|
||||
else:
|
||||
_last_session = session
|
||||
return result
|
40
demo/plugins/tuling.py
Normal file
40
demo/plugins/tuling.py
Normal file
@ -0,0 +1,40 @@
|
||||
import asyncio
|
||||
|
||||
from none import (
|
||||
on_command, CommandSession,
|
||||
on_natural_language, NLPSession, NLPResult
|
||||
)
|
||||
|
||||
|
||||
@on_command('tuling', aliases=('聊天', '对话'))
|
||||
async def tuling(session: CommandSession):
|
||||
message = session.get('message', prompt='我已经准备好啦,来跟我聊天吧~')
|
||||
|
||||
finish = message in ('结束', '拜拜', '再见')
|
||||
if finish:
|
||||
asyncio.ensure_future(session.send('拜拜啦,你忙吧,下次想聊天随时找我哦~'))
|
||||
return
|
||||
|
||||
# call tuling api
|
||||
reply = f'你说了:{message}'
|
||||
|
||||
one_time = session.get_optional('one_time', False)
|
||||
if one_time:
|
||||
asyncio.ensure_future(session.send(reply))
|
||||
else:
|
||||
del session.args['message']
|
||||
session.get('message', prompt=reply)
|
||||
|
||||
|
||||
@tuling.args_parser
|
||||
async def _(session: CommandSession):
|
||||
if session.current_key == 'message':
|
||||
session.args[session.current_key] = session.current_arg_text.strip()
|
||||
|
||||
|
||||
@on_natural_language
|
||||
async def _(session: NLPSession):
|
||||
return NLPResult(60.0, 'tuling', {
|
||||
'message': session.msg,
|
||||
'one_time': True
|
||||
})
|
35
demo/plugins/weather/__init__.py
Normal file
35
demo/plugins/weather/__init__.py
Normal file
@ -0,0 +1,35 @@
|
||||
from none import (
|
||||
CommandSession, CommandGroup,
|
||||
on_natural_language, NLPSession, NLPResult
|
||||
)
|
||||
|
||||
from . import expressions as expr
|
||||
|
||||
w = CommandGroup('weather')
|
||||
|
||||
|
||||
@w.command('weather', aliases=('天气', '天气预报'))
|
||||
async def weather(session: CommandSession):
|
||||
city = session.get('city', prompt_expr=expr.WHICH_CITY)
|
||||
await session.send_expr(expr.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')
|
12
demo/plugins/weather/expressions.py
Normal file
12
demo/plugins/weather/expressions.py
Normal file
@ -0,0 +1,12 @@
|
||||
WHICH_CITY = (
|
||||
'你想知道哪个城市的天气呢?',
|
||||
'你要查询的城市是哪个呢?',
|
||||
'你要查询哪个城市呢?',
|
||||
'哪个城市呢?',
|
||||
'请告诉我你要查询的城市~',
|
||||
)
|
||||
|
||||
REPORT = (
|
||||
'你查询了{city}的天气',
|
||||
'{city}的天气是……',
|
||||
)
|
Reference in New Issue
Block a user