Rename none_demo to demo

This commit is contained in:
Richard Chien
2018-08-13 22:34:45 +08:00
parent 7a5791e10d
commit 1a4afb3c10
8 changed files with 4 additions and 4 deletions

View 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
View 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
View 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
})

View 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')

View File

@ -0,0 +1,12 @@
WHICH_CITY = (
'你想知道哪个城市的天气呢?',
'你要查询的城市是哪个呢?',
'你要查询哪个城市呢?',
'哪个城市呢?',
'请告诉我你要查询的城市~',
)
REPORT = (
'你查询了{city}的天气',
'{city}的天气是……',
)