Add shortcut commands for alerts, backup, docker, openwrt
This commit is contained in:
@@ -20,20 +20,13 @@ HELP_TEXT = (
|
||||
)
|
||||
|
||||
|
||||
@dp.message(F.text.startswith("/alerts"))
|
||||
async def alerts_cmd(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
def _dispatch(msg: Message, action: str, args: list[str]):
|
||||
return {"action": action, "args": args}
|
||||
|
||||
parts = msg.text.split()
|
||||
if len(parts) < 2:
|
||||
await msg.answer(HELP_TEXT)
|
||||
return
|
||||
|
||||
action = parts[1].lower()
|
||||
|
||||
async def _handle_alerts(msg: Message, action: str, args: list[str]):
|
||||
if action == "test":
|
||||
level = parts[2].lower() if len(parts) >= 3 else "info"
|
||||
level = args[0].lower() if args else "info"
|
||||
if level not in ("critical", "warn", "info"):
|
||||
level = "info"
|
||||
key = f"test:{level}:{int(time.time())}"
|
||||
@@ -42,14 +35,14 @@ async def alerts_cmd(msg: Message):
|
||||
return
|
||||
|
||||
if action == "mute":
|
||||
if len(parts) < 3:
|
||||
if len(args) < 1:
|
||||
await msg.answer("Usage: /alerts mute <category> <minutes>")
|
||||
return
|
||||
category = parts[2].lower()
|
||||
category = args[0].lower()
|
||||
minutes = 60
|
||||
if len(parts) >= 4:
|
||||
if len(args) >= 2:
|
||||
try:
|
||||
minutes = max(1, int(parts[3]))
|
||||
minutes = max(1, int(args[1]))
|
||||
except ValueError:
|
||||
minutes = 60
|
||||
until = set_mute(category, minutes * 60)
|
||||
@@ -58,10 +51,10 @@ async def alerts_cmd(msg: Message):
|
||||
return
|
||||
|
||||
if action == "unmute":
|
||||
if len(parts) < 3:
|
||||
if len(args) < 1:
|
||||
await msg.answer("Usage: /alerts unmute <category>")
|
||||
return
|
||||
category = parts[2].lower()
|
||||
category = args[0].lower()
|
||||
clear_mute(category)
|
||||
await msg.answer(f"🔔 Unmuted {category}")
|
||||
return
|
||||
@@ -80,9 +73,9 @@ async def alerts_cmd(msg: Message):
|
||||
|
||||
if action == "recent":
|
||||
hours = 24
|
||||
if len(parts) >= 3:
|
||||
if args:
|
||||
try:
|
||||
hours = max(1, int(parts[2]))
|
||||
hours = max(1, int(args[0]))
|
||||
except ValueError:
|
||||
hours = 24
|
||||
rows = read_recent(cfg, hours, limit=50)
|
||||
@@ -93,3 +86,41 @@ async def alerts_cmd(msg: Message):
|
||||
return
|
||||
|
||||
await msg.answer(HELP_TEXT)
|
||||
|
||||
|
||||
@dp.message(F.text.startswith("/alerts"))
|
||||
async def alerts_cmd(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
|
||||
parts = msg.text.split()
|
||||
if len(parts) < 2:
|
||||
await msg.answer(HELP_TEXT)
|
||||
return
|
||||
|
||||
action = parts[1].lower()
|
||||
args = parts[2:]
|
||||
|
||||
if action == "test":
|
||||
await _handle_alerts(msg, action, args)
|
||||
|
||||
|
||||
@dp.message(F.text == "/alerts_list")
|
||||
async def alerts_list(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
await _handle_alerts(msg, "list", [])
|
||||
|
||||
|
||||
@dp.message(F.text == "/alerts_recent")
|
||||
async def alerts_recent(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
await _handle_alerts(msg, "recent", ["24"])
|
||||
|
||||
|
||||
@dp.message(F.text == "/alerts_mute_load")
|
||||
async def alerts_mute_load(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
await _handle_alerts(msg, "mute", ["load", "60"])
|
||||
|
||||
Reference in New Issue
Block a user