Refactor progress bar

This commit is contained in:
monosans
2024-01-25 11:49:22 +03:00
parent 890c000139
commit cabc3a0061
4 changed files with 17 additions and 11 deletions
+3 -1
View File
@@ -107,7 +107,9 @@ async def main() -> None:
settings = await Settings.from_mapping(cfg, session=session)
storage = ProxyStorage(protocols=settings.sources)
with Progress(
TextColumn("[progress.description]{task.description}"),
TextColumn("[yellow]{task.fields[col1]}"),
TextColumn("[red]::"),
TextColumn("[green]{task.fields[col2]}"),
BarColumn(),
MofNCompleteColumn(),
console=console,
+6 -4
View File
@@ -34,7 +34,7 @@ async def check_one(
"%s.%s: %s", e.__class__.__module__, e.__class__.__qualname__, e
)
storage.remove(proxy)
progress.update(task, advance=1)
progress.advance(task_id=task, advance=1)
async def check_all(
@@ -44,10 +44,12 @@ async def check_all(
progress: Progress,
proxies_count: Mapping[ProxyType, int],
) -> None:
tasks = {
progress_tasks = {
proto: progress.add_task(
f"[yellow]Checker [red]:: [green]{proto.name}",
description="",
total=proxies_count[proto],
col1="Checker",
col2=proto.name,
)
for proto in sort.PROTOCOL_ORDER
if proto in storage.enabled_protocols
@@ -59,7 +61,7 @@ async def check_all(
proxy=proxy,
settings=settings,
storage=storage,
task=tasks[proxy.protocol],
task=progress_tasks[proxy.protocol],
)
for proxy in storage
)
+4 -2
View File
@@ -41,7 +41,7 @@ async def _save_geodb(
async with aiofiles.open(GEODB_PATH, "wb") as geodb:
async for chunk in response.content.iter_any():
await geodb.write(chunk)
progress.update(task, advance=len(chunk))
progress.advance(task_id=task, advance=len(chunk))
async def download_geodb(*, progress: Progress, session: ClientSession) -> None:
@@ -64,8 +64,10 @@ async def download_geodb(*, progress: Progress, session: ClientSession) -> None:
progress=progress,
response=response,
task=progress.add_task(
"[yellow]Downloader[red] :: [green]GeoDB",
description="",
total=response.content_length,
col1="Downloader",
col2="GeoDB",
),
)
logger.info("Downloaded geolocation database to %s", GEODB_PATH)
+4 -4
View File
@@ -77,7 +77,7 @@ async def scrape_one(
password=proxy.group("password"),
)
)
progress.update(task, advance=1)
progress.advance(task_id=task, advance=1)
async def scrape_all(
@@ -87,9 +87,9 @@ async def scrape_all(
settings: Settings,
storage: ProxyStorage,
) -> None:
tasks = {
progress_tasks = {
proto: progress.add_task(
f"[yellow]Scraper [red]:: [green]{proto.name}", total=len(sources)
description="", total=len(sources), col1="Scraper", col2=proto.name
)
for proto, sources in settings.sources.items()
}
@@ -102,7 +102,7 @@ async def scrape_all(
session=session,
source=source,
storage=storage,
task=tasks[proto],
task=progress_tasks[proto],
timeout=timeout,
)
for proto, sources in settings.sources.items()