diff --git a/fastanime/Utility/__init__.py b/fastanime/Utility/__init__.py index e69de29..9f642ad 100644 --- a/fastanime/Utility/__init__.py +++ b/fastanime/Utility/__init__.py @@ -0,0 +1,4 @@ +"""This package exist as away to expose functions and classes that my be useful to a developer using the fastanime library + +[TODO:description] +""" diff --git a/fastanime/cli/commands/config.py b/fastanime/cli/commands/config.py index 6646eb9..b17385c 100644 --- a/fastanime/cli/commands/config.py +++ b/fastanime/cli/commands/config.py @@ -1,21 +1,27 @@ +from typing import TYPE_CHECKING + import click +if TYPE_CHECKING: + from ..config import Config + @click.command( help="Opens up your fastanime config in your preferred editor", short_help="Edit your config", ) @click.option("--path", "-p", help="Print the config location and exit", is_flag=True) +@click.option( + "--view", "-v", help="View the current contents of your config", is_flag=True +) @click.option( "--desktop-entry", "-d", help="Configure the desktop entry of fastanime", is_flag=True, ) -# @click.pass_obj -def config(path, desktop_entry): - pass - +@click.pass_obj +def config(config: "Config", path, view, desktop_entry): from pyshortcuts import make_shortcut from rich import print @@ -23,6 +29,8 @@ def config(path, desktop_entry): if path: print(USER_CONFIG_PATH) + elif view: + print(config) elif desktop_entry: import shutil diff --git a/fastanime/cli/config.py b/fastanime/cli/config.py index 5ca6fdc..b3e6259 100644 --- a/fastanime/cli/config.py +++ b/fastanime/cli/config.py @@ -249,9 +249,79 @@ class Config(object): with open(USER_CONFIG_PATH, "w") as config: self.configparser.write(config) - # TODO: update this def __repr__(self): - return f"Config(server:{self.get_server()},quality:{self.get_quality()},auto_next:{self.get_auto_next()},continue_from_history:{self.get_continue_from_history()},sort_by:{self.get_sort_by()},downloads_dir:{self.get_downloads_dir()})" + current_config_state = f""" +[stream] +# Auto continue from watch history +continue_from_history = {self.continue_from_history} + +# Preferred language for anime (options: dub, sub) +translation_type = {self.translation_type} + +# Default server (options: dropbox, sharepoint, wetransfer.gogoanime, top, wixmp) +server = {self.server} + +# Auto-select next episode +auto_next = {self.auto_next} + +# Auto select the anime provider results with fuzzy find. +# Note this wont always be correct.But 99% of the time will be. +auto_select = {self.auto_select} + +# whether to skip the opening and ending theme songs +# NOTE: requires ani-skip to be in path +skip = {self.skip} + +# the maximum delta time in minutes after which the episode should be considered as completed +# used in the continue from time stamp +error = {self.error} + +# whether to use python-mpv +# to enable superior control over the player +# adding more options to it +use_mpv_mod = {self.use_mpv_mod} + +# the format of downloaded anime and trailer +# based on yt-dlp format and passed directly to it +# learn more by looking it up on their site +# only works for downloaded anime if server=gogoanime +# since its the only one that offers different formats +# the others tend not to +format = {self.format} + +[general] + +# can be [allanime,animepahe] +provider = {self.provider} + +# Display language (options: english, romaji) +preferred_language = {self.preferred_language} + +# Download directory +downloads_dir = {self.downloads_dir} + +# whether to show a preview window when using fzf or rofi +preview = {self.preview} + +# whether to use fzf as the interface for the anilist command and others. +use_fzf = {self.use_fzf} + +# whether to use rofi for the ui +use_rofi = {self.use_rofi} + +# rofi theme to use +rofi_theme = {self.rofi_theme} +rofi_theme_input = {self.rofi_theme_input} +rofi_theme_confirm = {self.rofi_theme_confirm} + +# whether to show the icons +icons = {self.icons} + +# the duration in minutes a notification will stay in the screen +# used by notifier command +notification_duration = {self.notification_duration} + """ + return current_config_state def __str__(self): return self.__repr__()