Some cli improvements
- Adds cross platform clear console functionality - Replaces "search_for_metadata" if tree with a match case - Implements alternative command interface for handling the program - Fixes bug of error being displayed when quitting the program
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -10,3 +10,6 @@ __pycache__/ | |||||||
|  |  | ||||||
| /build/* | /build/* | ||||||
| !/build/build.sh | !/build/build.sh | ||||||
|  |  | ||||||
|  | # Virtual Environment | ||||||
|  | venv | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | from .utils.functions import * | ||||||
| from .utils.shared import * | from .utils.shared import * | ||||||
|  |  | ||||||
| from .metadata import ( | from .metadata import ( | ||||||
| @@ -37,24 +38,42 @@ def get_existing_genre(): | |||||||
|  |  | ||||||
|  |  | ||||||
| def search_for_metadata(): | def search_for_metadata(): | ||||||
|  |     clear_console() | ||||||
|  |  | ||||||
|     search = metadata_search.Search() |     search = metadata_search.Search() | ||||||
|  |  | ||||||
|     while True: |     while True: | ||||||
|         input_ = input( |         input_ = input( | ||||||
|             "q to quit, .. for previous options, int for this element, str to search for query, ok to download\n") | """ | ||||||
|         input_.strip() | - - - Type the command you want to execute - - - | ||||||
|         if input_.lower() == "ok": | .. - Previous Options | ||||||
|             break | (query_string) - Search for songs, albums, bands... | ||||||
|         if input_.lower() == "q": | (int) - Select an item from the search results | ||||||
|             break | d - Start the download | ||||||
|         if input_.lower() == "..": | h - Help | ||||||
|             print() | q - Quit / Exit | ||||||
|             print(search.get_previous_options()) |  | ||||||
|             continue | command: """ | ||||||
|         if input_.isdigit(): |         ) | ||||||
|             print() |  | ||||||
|             print(search.choose(int(input_))) |         match (input_.strip().lower()): | ||||||
|             continue |             case "d" | "ok" | "dl" | "download": | ||||||
|  |                 break | ||||||
|  |             case "q" | "quit" | "exit": | ||||||
|  |                 clear_console() | ||||||
|  |                 exit() | ||||||
|  |             case "h" | "help": | ||||||
|  |                 print() | ||||||
|  |                 # TODO: Help text (mainly explaining query strings and alternative command functionalities) | ||||||
|  |                 print("Insert here help text....") | ||||||
|  |             case inp if inp.isdigit(): | ||||||
|  |                 print() | ||||||
|  |                 print(search.choose(int(input_))) | ||||||
|  |                 continue | ||||||
|  |             case ".." : | ||||||
|  |                 print() | ||||||
|  |                 print(search.get_previous_options()) | ||||||
|  |  | ||||||
|         print() |         print() | ||||||
|         print(search.search_from_query(input_)) |         print(search.search_from_query(input_)) | ||||||
|  |  | ||||||
| @@ -81,6 +100,8 @@ def get_genre(): | |||||||
|  |  | ||||||
|  |  | ||||||
| def cli(start_at: int = 0, only_lyrics: bool = False): | def cli(start_at: int = 0, only_lyrics: bool = False): | ||||||
|  |     clear_console() | ||||||
|  |  | ||||||
|     if start_at <= 2 and not only_lyrics: |     if start_at <= 2 and not only_lyrics: | ||||||
|         genre = get_genre() |         genre = get_genre() | ||||||
|         logging.info(f"{genre} has been set as genre.") |         logging.info(f"{genre} has been set as genre.") | ||||||
| @@ -107,3 +128,7 @@ def cli(start_at: int = 0, only_lyrics: bool = False): | |||||||
|     if start_at <= 4: |     if start_at <= 4: | ||||||
|         logging.info("starting to fetch the lyrics") |         logging.info("starting to fetch the lyrics") | ||||||
|         lyrics.fetch_lyrics() |         lyrics.fetch_lyrics() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def gtk_gui(): | ||||||
|  |     pass | ||||||
|   | |||||||
| @@ -1,2 +1,2 @@ | |||||||
| # tells what exists | # tells what exists | ||||||
| __all__ = ["shared", "object_handeling", "phonetic_compares"] | __all__ = ["shared", "object_handeling", "phonetic_compares", "functions"] | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								src/music_kraken/utils/functions.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/music_kraken/utils/functions.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | import os | ||||||
|  |  | ||||||
|  | def clear_console(): | ||||||
|  |     os.system('cls' if os.name in ('nt', 'dos') else 'clear') | ||||||
		Reference in New Issue
	
	Block a user