42 lines
1.5 KiB
Python
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")
|