dfdf
This commit is contained in:
@@ -584,48 +584,19 @@ async def download_soulseek_file(
|
||||
log(f"[soulseek] Download timeout after {timeout}s", file=sys.stderr)
|
||||
bytes_done = int(getattr(transfer, "bytes_transfered", 0) or 0)
|
||||
state_val = getattr(getattr(transfer, "state", None), "VALUE", None)
|
||||
try:
|
||||
if getattr(sys.stderr, "isatty", lambda: False)():
|
||||
sys.stderr.write("\r" + (" " * 140) + "\r")
|
||||
sys.stderr.flush()
|
||||
except Exception:
|
||||
pass
|
||||
progress_bar.finish()
|
||||
return None, state_val, bytes_done, elapsed
|
||||
|
||||
bytes_done = int(getattr(transfer, "bytes_transfered", 0) or 0)
|
||||
total_bytes = int(getattr(transfer, "filesize", 0) or 0)
|
||||
now = time.time()
|
||||
if now - last_progress_time >= 0.5:
|
||||
percent = (bytes_done / total_bytes) * 100.0 if total_bytes > 0 else 0.0
|
||||
speed = bytes_done / elapsed if elapsed > 0 else 0.0
|
||||
eta_str: Optional[str] = None
|
||||
if total_bytes > 0 and speed > 0:
|
||||
try:
|
||||
eta_seconds = max(0.0, float(total_bytes - bytes_done) / float(speed))
|
||||
minutes, seconds = divmod(int(eta_seconds), 60)
|
||||
hours, minutes = divmod(minutes, 60)
|
||||
eta_str = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
|
||||
except Exception:
|
||||
eta_str = None
|
||||
|
||||
speed_str = progress_bar.format_bytes(speed) + "/s"
|
||||
progress_line = progress_bar.format_progress(
|
||||
percent_str=f"{percent:.1f}%",
|
||||
progress_bar.update(
|
||||
downloaded=bytes_done,
|
||||
total=total_bytes if total_bytes > 0 else None,
|
||||
speed_str=speed_str,
|
||||
eta_str=eta_str,
|
||||
label="download",
|
||||
file=sys.stderr,
|
||||
)
|
||||
|
||||
try:
|
||||
if getattr(sys.stderr, "isatty", lambda: False)():
|
||||
sys.stderr.write("\r" + progress_line + " ")
|
||||
sys.stderr.flush()
|
||||
else:
|
||||
log(progress_line, file=sys.stderr)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
last_progress_time = now
|
||||
|
||||
await asyncio.sleep(1)
|
||||
@@ -635,12 +606,7 @@ async def download_soulseek_file(
|
||||
final_elapsed = time.time() - start_time
|
||||
|
||||
# Clear in-place progress bar.
|
||||
try:
|
||||
if getattr(sys.stderr, "isatty", lambda: False)():
|
||||
sys.stderr.write("\r" + (" " * 140) + "\r")
|
||||
sys.stderr.flush()
|
||||
except Exception:
|
||||
pass
|
||||
progress_bar.finish()
|
||||
|
||||
# If a file was written, treat it as success even if state is odd.
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user