- ######
- # LEAVE THESE IMPORTS!
- ######
- import functions
- import random
- from textual.widgets import Log
-
- ######
- # config values (you can edit these to fit your environment and use case)
- ######
-
- # Serial port settings
- SERIAL_PORT = "/dev/ttyACM3"
- BAUD_RATE = 115200
-
- LENGTH = 10
- REPEAT = 5
- DELAY = 100
-
- ###
- # ^ = pullup, v = pulldown
- ###
- triggers = [
- ["-", False], #0
- ["-", False], #1
- ["-", False], #2
- ["-", False], #3
- ["-", False], #4
- ["-", False], #5
- ["-", False], #6
- ["-", False], #7
- ]
-
- ###
- # name, enabled, string to match in output, function to run
- # if string is blank ("") doesnt show toggle, just run button
- ###
- conditions = [
- ["user", False, "Router login:", "send_username"],
- ["pass", False, "Password", "send_password"],
- ["enter", False, "press Enter", "send_return"],
- ]
-
- ######
- # Custom functions for conditions to trigger
- ######
-
- def send_username():
- functions.send_uart_message("root")
- functions.add_text("[auto] $> root")
-
- # uncomment the following to use a password list!
- #with open("passwords.txt", "r") as f:
- # password_list = [line.strip() for line in f if line.strip()]
-
- password_list = ["root", "password", "123456", "qwerty", "admin", "letmein"]
- current_password_index = 0
-
- def send_password():
- global password_list, current_password_index
-
- passCount = len(password_list)
- # Get the current password
- password = password_list[current_password_index]
-
- # Send the password and update UI
- functions.send_uart_message(password)
- functions.add_text(f"[pass {current_password_index} / {passCount}] $> {password}")
- # Move to the next password (wrap around if at end of list)
- current_password_index = (current_password_index + 1) % len(password_list)
-
- def send_return():
- functions.send_uart_message(" ")