refactored console theme logic

This commit is contained in:
evilchili
2022-12-17 10:50:02 -08:00
parent b7ec4259a6
commit 5ff2c39542
4 changed files with 78 additions and 45 deletions
+23 -1
View File
@@ -4,6 +4,8 @@ import os
from sqlalchemy.exc import NoResultFound
from textwrap import dedent, wrap
from rich.table import Column
from rich import box
from groove import db
from groove.exceptions import PlaylistValidationError
@@ -95,7 +97,27 @@ class _playlist(BasePrompt):
return True
def show(self, *parts):
self.parent.console.print(self.parent.playlist.as_richtext)
pl = self.parent.playlist
title = f"\n [b]:headphones: {pl.name}[/b]"
if pl.description:
title += f"\n [italic]{pl.description}[/italic]\n"
table = self.parent.console.table(
Column('#', justify='right', width=4),
Column('Artist', justify='left'),
Column('Title', justify='left'),
box=box.HORIZONTALS,
title=title,
title_justify='left',
caption=f"[link]{pl.url}[/link]",
caption_justify='right',
)
for (num, entry) in enumerate(pl.entries):
table.add_row(
f"[text]{num+1}[/text]",
f"[artist]{entry.artist}[/artist]",
f"[title]{entry.title}[/title]"
)
self.parent.console.print(table)
return True
def add(self, *parts):