add plain-txt output format and change line break character from \r\n to \n

pull/45/head
Boris 2022-04-23 18:59:19 +03:00
parent ee062e09de
commit 2459fceed1
1 changed files with 20 additions and 13 deletions

View File

@ -135,7 +135,7 @@ def main():
+ '`playlist-read-private` permission)') + '`playlist-read-private` permission)')
parser.add_argument('--dump', default='playlists', choices=['liked,playlists', 'playlists,liked', 'playlists', 'liked'], parser.add_argument('--dump', default='playlists', choices=['liked,playlists', 'playlists,liked', 'playlists', 'liked'],
help='dump playlists or liked songs, or both (default: playlists)') 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=['json', 'txt', 'plain-txt'], help='output format (default: txt)')
parser.add_argument('file', help='output filename', nargs='?') parser.add_argument('file', help='output filename', nargs='?')
args = parser.parse_args() args = parser.parse_args()
@ -190,22 +190,26 @@ def main():
# Tab-separated file. # Tab-separated file.
else: else:
f.write('Playlists: \r\n\r\n') f.write('Playlists:\n\n')
for playlist in playlists: for playlist in playlists:
f.write(playlist['name'] + '\r\n') f.write(playlist['name'] + '\n\n')
for track in playlist['tracks']: for track in playlist['tracks']:
if track['track'] is None: if track['track'] is None:
continue continue
f.write('{name}\t{artists}\t{album}\t{uri}\t{release_date}\r\n'.format( uri=track['track']['uri']
uri=track['track']['uri'], name=track['track']['name']
name=track['track']['name'], artists=', '.join([artist['name'] for artist in track['track']['artists']])
artists=', '.join([artist['name'] for artist in track['track']['artists']]), release_date=track['track']['album']['release_date']
album=track['track']['album']['name'], album=track['track']['album']['name']
release_date=track['track']['album']['release_date']
)) if args.format == 'txt':
f.write('\r\n') f.write(f'{name}\t{artists}\t{album}\t{uri}\t{release_date}\n')
else:
f.write(f'{name} - {artists}\n')
f.write('\n')
if len(liked_albums) > 0: if len(liked_albums) > 0:
f.write('Liked Albums: \r\n\r\n') f.write('Liked Albums: \n')
for album in liked_albums: for album in liked_albums:
uri = album['album']['uri'] uri = album['album']['uri']
name = album['album']['name'] name = album['album']['name']
@ -213,7 +217,10 @@ def main():
release_date = album['album']['release_date'] release_date = album['album']['release_date']
album = f'{artists} - {name}' album = f'{artists} - {name}'
f.write(f'{name}\t{artists}\t-\t{uri}\t{release_date}\r\n') if args.format == 'txt':
f.write(f'{name}\t{artists}\t-\t{uri}\t{release_date}\n')
else:
f.write(f'{name} - {artists}\n')
logging.info('Wrote file: ' + args.file) logging.info('Wrote file: ' + args.file)