Added Progress Output (#52)

* Added Progress Option

* VSCode adding unwanted imports

* linting

* Forgot to increment the Download total

* fixed issues with counter

* Added Mutex for safety

* reorder  imports
This commit is contained in:
Peter Taylor 2022-05-09 17:05:03 +01:00 committed by GitHub
parent da2d93a10b
commit 33acac6609
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,7 @@
import json
from concurrent.futures import ThreadPoolExecutor
import functools
import threading
import requests
from itchiodl.game import Game
@ -38,9 +40,17 @@ class Library:
def download_library(self, platform=None):
"""Download all games in the library"""
with ThreadPoolExecutor(max_workers=self.jobs) as executor:
i = [0]
l = len(self.games)
lock = threading.RLock()
def dl(g):
return g.download(self.login, platform)
def dl(i, g):
x = g.download(self.login, platform)
with lock:
i[0] += 1
print(f"Downloaded {g.name} ({i[0]} of {l})")
return x
executor.map(dl, self.games)
executor.map(functools.partial(dl, i), self.games)