|
2 | 2 | import threading |
3 | 3 | import webbrowser |
4 | 4 | from collections import namedtuple |
| 5 | +from itertools import chain |
5 | 6 |
|
6 | 7 | from spotify import TrackAvailability |
7 | 8 |
|
8 | 9 | from . import responses |
9 | 10 | from .http_server import oAuthServerThread |
| 11 | +from .radio import Recommendations |
10 | 12 | from .search import search |
11 | 13 | from .util import (format_album, format_track, get_duration_from_s, |
12 | 14 | single_char_with_timeout, sorted_menu_items) |
13 | | -from .radio import Recommendations |
14 | 15 |
|
15 | 16 | logger = logging.getLogger(__name__) |
16 | 17 |
|
@@ -244,7 +245,7 @@ def include_playlist(playlist): |
244 | 245 | for i, playlist in playlists: |
245 | 246 | menu_item = PlayListSelected(self.navigator) |
246 | 247 | menu_item.playlist = playlist.link.as_playlist() |
247 | | - results[str(i+1).rjust(4)] = MenuValue( |
| 248 | + results[str(i + 1).rjust(4)] = MenuValue( |
248 | 249 | menu_item.playlist.name, menu_item |
249 | 250 | ) |
250 | 251 | return results |
@@ -393,6 +394,14 @@ def get_options_from_search(self): |
393 | 394 | ) |
394 | 395 | return results |
395 | 396 |
|
| 397 | + def get_mock_playlist(self): |
| 398 | + track_results = list(chain(*[ |
| 399 | + album.tracks for album in self.search.results.results |
| 400 | + ])) |
| 401 | + return MockPlaylist( |
| 402 | + self.get_mock_playlist_name(), track_results |
| 403 | + ) |
| 404 | + |
396 | 405 |
|
397 | 406 | class TrackSearch(Menu): |
398 | 407 | is_searching = False |
@@ -513,7 +522,7 @@ def get_options(self): |
513 | 522 | self.get_tracks() |
514 | 523 | if track.availability != TrackAvailability.UNAVAILABLE |
515 | 524 | ): |
516 | | - results[str(i+1).rjust(4)] = MenuValue( |
| 525 | + results[str(i + 1).rjust(4)] = MenuValue( |
517 | 526 | format_track(track), self.select_song(i) |
518 | 527 | ) |
519 | 528 | if results: |
|
0 commit comments