Refactor progress bar
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user