Files
aiData/DouYin/dy-downloader/cli/progress_display.py
HuangHai d89388ab51 'commit'
2026-01-20 14:05:19 +08:00

59 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from rich.console import Console
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, TaskProgressColumn, TimeRemainingColumn
from rich.table import Table
from rich.panel import Panel
console = Console()
class ProgressDisplay:
def __init__(self):
self.console = console
def show_banner(self):
banner = """
╔══════════════════════════════════════════╗
║ Douyin Downloader v1.0.0 ║
║ 抖音批量下载工具 ║
╚══════════════════════════════════════════╝
"""
self.console.print(banner, style="bold cyan")
def create_progress(self) -> Progress:
return Progress(
SpinnerColumn(),
TextColumn("[progress.description]{task.description}"),
BarColumn(),
TaskProgressColumn(),
TimeRemainingColumn(),
console=self.console
)
def show_result(self, result):
table = Table(title="Download Summary", show_header=True, header_style="bold magenta")
table.add_column("Metric", style="cyan")
table.add_column("Count", justify="right", style="green")
table.add_row("Total", str(result.total))
table.add_row("Success", str(result.success))
table.add_row("Failed", str(result.failed))
table.add_row("Skipped", str(result.skipped))
if result.total > 0:
success_rate = (result.success / result.total) * 100
table.add_row("Success Rate", f"{success_rate:.1f}%")
self.console.print(table)
def print_info(self, message: str):
self.console.print(f"[blue]ℹ[/blue] {message}")
def print_success(self, message: str):
self.console.print(f"[green]✓[/green] {message}")
def print_warning(self, message: str):
self.console.print(f"[yellow]⚠[/yellow] {message}")
def print_error(self, message: str):
self.console.print(f"[red]✗[/red] {message}")