|
1 | 1 | from bandcamp.app.player import Player |
2 | 2 |
|
3 | | - |
4 | 3 | COLUMN_WIDTH = CW = 30 |
5 | 4 | MAX_TRACKS = 100 # Allows to load more tracks once. |
6 | 5 |
|
| 6 | + |
7 | 7 | def interact(): |
8 | 8 | """Control the player through user interactions.""" |
9 | 9 | with Player() as player: |
10 | 10 | while True: |
11 | | - print( |
12 | | - "\nType: play [<track number>] | pause | tracks | more | exit" |
13 | | - ) |
| 11 | + print("\nType: play [<track number>] | pause | tracks | more | exit") |
14 | 12 | match input("> ").strip().lower().split(): |
15 | 13 | case ["play"]: |
16 | 14 | play(player) |
@@ -41,29 +39,25 @@ def play(player, track_number=None): |
41 | 39 | player.play(track_number) |
42 | 40 | print(player._current_track._get_track_info()) |
43 | 41 |
|
| 42 | + |
44 | 43 | def pause(player): |
45 | 44 | """Pause the current track.""" |
46 | 45 | player.pause() |
47 | 46 |
|
| 47 | + |
48 | 48 | def display_tracks(player): |
49 | 49 | """Display information about the currently playable tracks.""" |
50 | | - header = ( |
51 | | - f"{'#':<5} {'Album':<{CW}} {'Artist':<{CW}} {'Genre':<{CW}}" |
52 | | - ) |
| 50 | + header = f"{'#':<5} {'Album':<{CW}} {'Artist':<{CW}} {'Genre':<{CW}}" |
53 | 51 | print(header) |
54 | 52 | print("-" * 100) |
55 | | - for track_number, track in enumerate( |
56 | | - player.tracklist.available_tracks, start=1 |
57 | | - ): |
| 53 | + for track_number, track in enumerate(player.tracklist.available_tracks, start=1): |
58 | 54 | if track.text: |
59 | 55 | album, artist, *genre = track.text.split("\n") |
60 | 56 | album = _truncate(album, CW) |
61 | 57 | artist = _truncate(artist, CW) |
62 | 58 | genre = _truncate(genre[0], CW) if genre else "" |
63 | | - print( |
64 | | - f"{track_number:<5} {album:<{CW}} " |
65 | | - f"{artist:<{CW}} {genre:<{CW}}" |
66 | | - ) |
| 59 | + print(f"{track_number:<5} {album:<{CW}} {artist:<{CW}} {genre:<{CW}}") |
| 60 | + |
67 | 61 |
|
68 | 62 | def _truncate(text, width): |
69 | 63 | """Truncate track information.""" |
|
0 commit comments