diff options
author | James Taylor <user234683@users.noreply.github.com> | 2018-08-09 00:59:25 -0700 |
---|---|---|
committer | James Taylor <user234683@users.noreply.github.com> | 2018-08-09 00:59:25 -0700 |
commit | 377749d79dcd22304537065409775441915b9296 (patch) | |
tree | 971372595c5e19356977a0ea74ded6516e4e133c /youtube/watch.py | |
parent | 1d99efffa0fdee56dd9656887c747d15594a3611 (diff) | |
download | yt-local-377749d79dcd22304537065409775441915b9296.tar.lz yt-local-377749d79dcd22304537065409775441915b9296.tar.xz yt-local-377749d79dcd22304537065409775441915b9296.zip |
music list: don't include album column if no tracks use it
Diffstat (limited to 'youtube/watch.py')
-rw-r--r-- | youtube/watch.py | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/youtube/watch.py b/youtube/watch.py index cfe827b..ea9ef4c 100644 --- a/youtube/watch.py +++ b/youtube/watch.py @@ -351,20 +351,33 @@ def get_watch_page(query_string): if len(music_list) == 0: music_list_html = '' else: + # get the set of attributes which are used by atleast 1 track + # so there isn't an empty, extraneous album column which no tracks use, for example + used_attributes = set() + for track in music_list: + used_attributes = used_attributes | track.keys() + + # now put them in the right order + ordered_attributes = [] + for attribute in ('Artist', 'Title', 'Album'): + if attribute.lower() in used_attributes: + ordered_attributes.append(attribute) + music_list_html = '''<hr> <table> <caption>Music</caption> <tr> - <th>Artist</th> - <th>Title</th> - <th>Album</th> - </tr> ''' + # table headings + for attribute in ordered_attributes: + music_list_html += "<th>" + attribute + "</th>\n" + music_list_html += '''</tr>\n''' + for track in music_list: music_list_html += '''<tr>\n''' - for attribute in ('artist', 'title', 'album'): + for attribute in ordered_attributes: try: - value = track[attribute] + value = track[attribute.lower()] except KeyError: music_list_html += '''<td></td>''' else: |