diff --git a/fastanime/cli/config.py b/fastanime/cli/config.py index b9e19d5..3cc7089 100644 --- a/fastanime/cli/config.py +++ b/fastanime/cli/config.py @@ -158,6 +158,7 @@ class Config(object): self.server = self.configparser.get("stream", "server") self.skip = self.configparser.getboolean("stream", "skip") self.sort_by = self.configparser.get("anilist", "sort_by") + self.menu_order = self.configparser.get("general", "menu_order", fallback=None) self.sub_lang = self.configparser.get("general", "sub_lang") self.translation_type = self.configparser.get("stream", "translation_type") self.use_fzf = self.configparser.getboolean("general", "use_fzf") diff --git a/fastanime/cli/interfaces/anilist_interfaces.py b/fastanime/cli/interfaces/anilist_interfaces.py index efffffc..42d1f7a 100644 --- a/fastanime/cli/interfaces/anilist_interfaces.py +++ b/fastanime/cli/interfaces/anilist_interfaces.py @@ -4,7 +4,7 @@ import os import random from typing import TYPE_CHECKING -from click import clear +from click import clear, option from InquirerPy import inquirer from InquirerPy.validator import EmptyInputValidator from rich import print @@ -1712,6 +1712,18 @@ def fastanime_main_menu( f"{'📝 ' if icons else ''}Edit Config": _edit_config, f"{'❌ ' if icons else ''}Exit": exit_app, } + + # Load main menu order if set in config file + if config.menu_order: + menu_order_list = config.menu_order.split(",") + lookup = {key.split(" ", 1)[-1]: key for key in options} + ordered_dict = { + lookup[key]: options[lookup[key]] + for key in menu_order_list + if key in lookup + } + options = ordered_dict + # prompt user to select an action choices = list(options.keys()) if config.use_fzf: