Allow aliases for commands
This commit is contained in:
parent
aec1d42e8a
commit
1caa00add2
18
bot.py
18
bot.py
|
|
@ -101,18 +101,22 @@ HANDLERS: List[Tuple[Pattern[str], Callable[[Match[str]], Response]]]
|
||||||
HANDLERS = []
|
HANDLERS = []
|
||||||
|
|
||||||
|
|
||||||
def handler(prefix: str) -> Callable[[Callback], Callback]:
|
def handler(*prefixes: str) -> Callable[[Callback], Callback]:
|
||||||
def handler_decorator(func: Callback) -> Callback:
|
def handler_decorator(func: Callback) -> Callback:
|
||||||
HANDLERS.append((re.compile(prefix + '\r\n$'), func))
|
for prefix in prefixes:
|
||||||
|
HANDLERS.append((re.compile(prefix + '\r\n$'), func))
|
||||||
return func
|
return func
|
||||||
return handler_decorator
|
return handler_decorator
|
||||||
|
|
||||||
|
|
||||||
def handle_message(message_prefix: str) -> Callable[[Callback], Callback]:
|
def handle_message(*message_prefixes: str) -> Callable[[Callback], Callback]:
|
||||||
return handler(
|
return handler(
|
||||||
f'^:(?P<user>[^!]+).* '
|
*(
|
||||||
f'PRIVMSG #(?P<channel>[^ ]+) '
|
f'^:(?P<user>[^!]+).* '
|
||||||
f':(?P<msg>{message_prefix}.*)',
|
f'PRIVMSG #(?P<channel>[^ ]+) '
|
||||||
|
f':(?P<msg>{message_prefix}.*)'
|
||||||
|
for message_prefix in message_prefixes
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -209,7 +213,7 @@ class TodayResponse(MessageResponse):
|
||||||
return await super().__call__(config)
|
return await super().__call__(config)
|
||||||
|
|
||||||
|
|
||||||
@handle_message('!today')
|
@handle_message('!today', '!project')
|
||||||
def cmd_today(match: Match[str]) -> Response:
|
def cmd_today(match: Match[str]) -> Response:
|
||||||
return TodayResponse(match)
|
return TodayResponse(match)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue