From d59cd47f36bc638dd42aac3e02a5de81e0ec3ec7 Mon Sep 17 00:00:00 2001 From: Salt Date: Tue, 3 Mar 2020 19:25:40 -0600 Subject: [PATCH] Cleaner args --- badwitch.py | 101 ++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/badwitch.py b/badwitch.py index d5a0af2..b48d016 100755 --- a/badwitch.py +++ b/badwitch.py @@ -41,15 +41,17 @@ class Library: class BadWitch: # Our program def __init__(self): - # Set up arguments - self.argparser = argparse.ArgumentParser(description='Manage a declarative music library through YouTube scraping') - self.argparser.add_argument('action', metavar='action', nargs=1, - choices=['download', 'add', 'remove', 'list', 'test'], - help='Action to perform on the library') - self.argparser.add_argument('-l', '--library', metavar='f', nargs=1, + # Flags and arguments + self.argparser = argparse.ArgumentParser( + description='Manage a declarative music library through YouTube scraping') + self.argparser.add_argument('-l', '--library', metavar='f', nargs='?', help='Override default library file with this one') self.argparser.add_argument('-v', '--verbose', action='store_true', help='Show more status messages') + # Subparsers + self.argparser.add_argument('action', metavar='action', nargs='?', + choices=['download', 'add', 'remove', 'list', 'test'], + help='Action to perform on the library') # Set up appdirs self.dirs = AppDirs('badwitch', 'rehashedsalt') Path(self.dirs.user_data_dir).mkdir(parents=True, exist_ok=True) @@ -57,54 +59,51 @@ class BadWitch: def execute(self): self.args = self.argparser.parse_args() # Initialize library - libfile = self.dirs.user_data_dir + '/lib.json' - if self.args.library is not None: - libfile = self.args.library[0] + libfile = self.args.library or self.dirs.user_data_dir + '/lib.json' lib = Library(file=libfile) # Perform action - for action in self.args.action: - if action == 'download': - return - elif action == 'add': - return - elif action == 'remove': - return - elif action == 'list': - lib.load() - for album, albumcontent in lib.albums.items(): - for song, songcontent in albumcontent.items(): - print(album + ' - ' + song + ' by ' + songcontent['artist']) - return - elif action == 'test': - # Set up a test album - lib.albums['Bad Witch'] = { - 'Shit Mirror': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=yeqjz5mXrLQ' - }, - 'Ahead of Ourselves': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=4Ab1O-i4ep4' - }, - 'Play the Goddamned Part': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=85UgvBkMfr8' - }, - 'God Break Down the Door': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=eeJ_DzRJUI4' - }, - 'I\'m Not From This World': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=9fjbcSUSt9w' - }, - 'Over and Out': { - 'artist': 'Nine Inch Nails', - 'source': 'https://www.youtube.com/watch?v=h-XlN3N2fis' - } + if self.args.action == 'download': + return + elif self.args.action == 'add': + return + elif self.args.action == 'remove': + return + elif self.args.action == 'list': + lib.load() + for album, albumcontent in lib.albums.items(): + for song, songcontent in albumcontent.items(): + print(album + ' - ' + song + ' by ' + songcontent['artist']) + return + elif self.args.action == 'test': + # Set up a test album + lib.albums['Bad Witch'] = { + 'Shit Mirror': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=yeqjz5mXrLQ' + }, + 'Ahead of Ourselves': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=4Ab1O-i4ep4' + }, + 'Play the Goddamned Part': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=85UgvBkMfr8' + }, + 'God Break Down the Door': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=eeJ_DzRJUI4' + }, + 'I\'m Not From This World': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=9fjbcSUSt9w' + }, + 'Over and Out': { + 'artist': 'Nine Inch Nails', + 'source': 'https://www.youtube.com/watch?v=h-XlN3N2fis' } - lib.save() - return + } + lib.save() + return badwitch = BadWitch() badwitch.execute()