From fb0b171d99136d282266f8f3a689ee8ec78f2ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Szramowski?= Date: Mon, 7 Dec 2020 01:49:43 +0100 Subject: [PATCH] Add pretty-printed JSON format --- README.md | 4 +++- spotify-backup.py | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d905bb4..ee8bd08 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,12 @@ You can run the script from the command line: python spotify-backup.py playlists.txt -or, to get a JSON dump, use: +or, to get a JSON dump (possibly pretty-printed), use: python spotify-backup.py playlists.json --format=json + python spotify-backup.py playlists.json --format=pretty-json + By default, it includes your playlists. To include your Liked Songs, you can use: python spotify-backup.py playlists.txt --dump=liked,playlists diff --git a/spotify-backup.py b/spotify-backup.py index 393ddde..dd50e1d 100755 --- a/spotify-backup.py +++ b/spotify-backup.py @@ -135,7 +135,7 @@ def main(): + '`playlist-read-private` permission)') parser.add_argument('--dump', default='playlists', choices=['liked,playlists', 'playlists,liked', 'playlists', 'liked'], help='dump playlists or liked songs, or both (default: playlists)') - parser.add_argument('--format', default='txt', choices=['json', 'txt'], help='output format (default: txt)') + parser.add_argument('--format', default='txt', choices=['pretty-json', 'json', 'txt'], help='output format (default: %(default)s)') parser.add_argument('file', help='output filename', nargs='?') args = parser.parse_args() @@ -179,8 +179,12 @@ def main(): # Write the file. logging.info('Writing files...') with open(args.file, 'w', encoding='utf-8') as f: + # Pretty-printed JSON file. + if args.format == 'pretty-json': + json.dump(playlists, f, indent=2, separators=(', ', ': ')) + # JSON file. - if args.format == 'json': + elif args.format == 'json': json.dump(playlists, f) # Tab-separated file.