Add ability to remove menu items

Added the ability to remove items from menus for those who may not be using features like JS8call, etc..
This commit is contained in:
TC² 2024-07-23 12:05:40 -04:00
parent 33020e8ec5
commit fc86fe923e
2 changed files with 73 additions and 3 deletions

View file

@ -1,3 +1,4 @@
import configparser
import logging import logging
import random import random
import time import time
@ -16,17 +17,51 @@ from utils import (
update_user_state update_user_state
) )
# Read the configuration for menu options
config = configparser.ConfigParser()
config.read('config.ini')
main_menu_items = config['menu']['main_menu_items'].split(',')
bbs_menu_items = config['menu']['bbs_menu_items'].split(',')
utilities_menu_items = config['menu']['utilities_menu_items'].split(',')
def build_menu(items, menu_name):
menu_str = f"{menu_name}\n"
for item in items:
if item.strip() == 'Q':
menu_str += "[Q]uick Commands\n"
elif item.strip() == 'B':
menu_str += "[B]BS\n"
elif item.strip() == 'U':
menu_str += "[U]tilities\n"
elif item.strip() == 'X':
menu_str += "E[X]IT\n"
elif item.strip() == 'M':
menu_str += "[M]ail\n"
elif item.strip() == 'C':
menu_str += "[C]hannel Dir\n"
elif item.strip() == 'J':
menu_str += "[J]S8CALL\n"
elif item.strip() == 'S':
menu_str += "[S]tats\n"
elif item.strip() == 'F':
menu_str += "[F]ortune\n"
elif item.strip() == 'W':
menu_str += "[W]all of Shame\n"
return menu_str
def handle_help_command(sender_id, interface, menu_name=None): def handle_help_command(sender_id, interface, menu_name=None):
if menu_name: if menu_name:
update_user_state(sender_id, {'command': 'MENU', 'menu': menu_name, 'step': 1}) update_user_state(sender_id, {'command': 'MENU', 'menu': menu_name, 'step': 1})
if menu_name == 'bbs': if menu_name == 'bbs':
response = "📰BBS Menu📰\n[M]ail\n[B]ulletins\n[C]hannel Dir\n[J]S8CALL\nE[X]IT" response = build_menu(bbs_menu_items, "📰BBS Menu📰")
elif menu_name == 'utilities': elif menu_name == 'utilities':
response = "🛠Utilities Menu🛠\n[S]tats\n[F]ortune\n[W]all of Shame\nE[X]IT" response = build_menu(utilities_menu_items, "🛠Utilities Menu🛠")
else: else:
update_user_state(sender_id, {'command': 'MAIN_MENU', 'step': 1}) # Reset to main menu state update_user_state(sender_id, {'command': 'MAIN_MENU', 'step': 1}) # Reset to main menu state
response = "💾TC² BBS💾\n[Q]uick Commands\n[B]BS\n[U]tilities\nE[X]IT" response = build_menu(main_menu_items, "💾TC² BBS💾")
send_message(response, sender_id, interface) send_message(response, sender_id, interface)

View file

@ -47,6 +47,41 @@ type = serial
# allowed_nodes = !17d7e4b7 # allowed_nodes = !17d7e4b7
####################
#### Menu Items ####
####################
# Remove any menu items you don't plan on using with your BBS below
#
[menu]
# Default Main Menu options for reference
# [Q]uick Commands
# [B]BS
# [U]tilities
# E[X]IT
#
# Remove any menu items from the list below that you want to exclude from the main menu
main_menu_items = Q, B, U, X
# Default BBS Menu options for reference
# [M]ail
# [B]ulletins
# [C]hannel Dir
# [J]S8CALL
# E[X]IT
#
# Remove any menu items from the list below that you want to exclude from the BBS menu
bbs_menu_items = M, B, C, J, X
# Default BBS Menu option for reference
# [S]tats
# [F]ortune
# [W]all of Shame
# E[X]IT
#
# Remove any menu items from the list below that you want to exclude from the utilities menu
utilities_menu_items = S, F, W, X
########################## ##########################
#### JS8Call Settings #### #### JS8Call Settings ####
########################## ##########################