feat(cli): complete config command

This commit is contained in:
Benex254
2024-07-17 00:03:24 +03:00
parent bcd8637b31
commit e695577881
5 changed files with 36 additions and 22 deletions

View File

@@ -1,5 +1,3 @@
from sys import exit
import click
from .. import __version__
@@ -16,11 +14,10 @@ commands = {
"download": download,
"anilist": anilist,
"config": configure,
"exit": exit,
}
@click.group(commands=commands, invoke_without_command=True)
@click.group(commands=commands)
@click.version_option(__version__, "--version")
@click.option(
"-s",

View File

@@ -1,5 +1,3 @@
from sys import exit
import click
from ...interfaces.anilist_interfaces import anilist as anilist_interface
@@ -20,7 +18,6 @@ commands = {
"trending": trending,
"scores": scores,
"upcoming": upcoming,
"exit": exit,
}

View File

@@ -1,8 +1,23 @@
import os
import subprocess
import click
from rich import print
from ... import USER_CONFIG_PATH
from ..utils.tools import exit_app
@click.command()
@click.command(
help="Opens up your fastanime config in your preferred editor",
short_help="Edit your config",
)
def configure():
pass
if EDITOR := os.environ.get("EDITOR"):
subprocess.run([EDITOR, USER_CONFIG_PATH])
exit_app()
else:
print("$EDITOR environment variable missing :confused:")
print("Please Set the $EDITOR environment variable to enable editing of config")
# create_desktop_shortcut()

View File

@@ -7,7 +7,7 @@ import sys
from rich import print
from rich.prompt import Prompt
from ... import APP_CACHE_DIR, USER_CONFIG_PATH, USER_NAME
from ... import APP_CACHE_DIR, USER_CONFIG_PATH
from ...libs.anilist.anilist import AniList
from ...libs.anilist.anilist_data_schema import AnilistBaseMediaDataSchema
from ...libs.anime_provider.allanime.api import anime_provider
@@ -18,7 +18,7 @@ from ...Utility.data import anime_normalizer
from ...Utility.utils import remove_html_tags, sanitize_filename
from ..config import Config
from ..utils.mpv import mpv
from ..utils.tools import QueryDict
from ..utils.tools import QueryDict, exit_app
from ..utils.utils import clear
SEARCH_RESULTS_CACHE = os.path.join(APP_CACHE_DIR, "search_results")
@@ -101,11 +101,6 @@ def get_preview(search_results: list[AnilistBaseMediaDataSchema], config: Config
return preview
def exit_app(*args):
print("Have a good day :smile:", USER_NAME)
sys.exit(0)
def player_controls(config: Config, anilist_config: QueryDict):
# user config
translation_type: str = config.translation_type.lower()

View File

@@ -1,6 +1,3 @@
from rich.text import Text
class QueryDict(dict):
"""dot.notation access to dictionary attributes"""
@@ -16,12 +13,25 @@ class QueryDict(dict):
self.__setitem__(attr, value)
def get_formatted_str(text: str, style):
def exit_app(*args):
import sys
from rich import print
from ... import USER_NAME
print("Have a good day :smile:", USER_NAME)
sys.exit(0)
def get_formatted_str(string: str, style):
from rich.text import Text
# Create a Text object with desired style
text = Text("Hello, World!", style="bold red")
text = Text(string, style="bold red")
# Convert the Text object to an ANSI string
ansi_output = text.__rich_console__(None, None)
ansi_output = text.__rich_console__(None, None) # pyright:ignore
# Join the ANSI strings to form the final output
"".join(segment.text for segment in ansi_output)