Files
mikhmon-fix/fix-via-api.py
T
2026-08-15 00:28:08 +07:00

42 lines
1.5 KiB
Python

import librouteros
api = librouteros.connect('192.168.100.2', 'mi4', 'm14', port=8728)
print("=== Fixing scheduler on-event scripts ===")
for item in list(api('/system/scheduler/print')):
name = item['name']
on_event = item.get('on-event', '')
if ':pic' not in on_event:
continue
fixed = on_event.replace(':pic', ':pick')
count = on_event.count(':pic')
api('/system/scheduler/set', **{'.id': item['.id'], 'on-event': fixed})
print(f" {name}: fixed {count} :pic -> :pick")
print("\n=== Fixing hotspot profile on-login scripts ===")
for item in list(api('/ip/hotspot/user/profile/print')):
name = item['name']
on_login = item.get('on-login', '')
if ':pic' not in on_login:
continue
fixed = on_login.replace(':pic', ':pick')
count = on_login.count(':pic')
api('/ip/hotspot/user/profile/set', **{'.id': item['.id'], 'on-login': fixed})
print(f" {name}: fixed {count} :pic -> :pick")
print("\n=== Verification ===")
still_broken = False
for item in list(api('/system/scheduler/print')):
if ':pic' in item.get('on-event', ''):
print(f" BROKEN: {item['name']} scheduler still has :pic!")
still_broken = True
for item in list(api('/ip/hotspot/user/profile/print')):
if ':pic' in item.get('on-login', ''):
print(f" BROKEN: {item['name']} profile on-login still has :pic!")
still_broken = True
if not still_broken:
print(" ALL FIXED - no :pic remaining")
api.close()
print("\nDONE")