mirror of
https://github.com/Emersont1/itchio.git
synced 2026-03-11 08:54:39 +00:00
Allow the download directory to be changed
This commit is contained in:
parent
57310c8c99
commit
2b441abbc8
3 changed files with 21 additions and 7 deletions
|
|
@ -8,6 +8,16 @@ import itchiodl
|
|||
def main():
|
||||
parser = argparse.ArgumentParser(prog="python -m hstp", description="Build an ")
|
||||
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--output-dir",
|
||||
type=str,
|
||||
default=".",
|
||||
help=(
|
||||
"The location to store the downloaded files, defaults to the current working directory"
|
||||
),
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-k", "--api-key", help="Use API key instead of username/password"
|
||||
)
|
||||
|
|
@ -58,7 +68,9 @@ def main():
|
|||
else:
|
||||
l = args.api_key
|
||||
|
||||
lib = itchiodl.Library(l, jobs=args.jobs, human_folders=args.human_folders)
|
||||
lib = itchiodl.Library(
|
||||
l, jobs=args.jobs, human_folders=args.human_folders, output_dir=args.output_dir
|
||||
)
|
||||
|
||||
if args.download_publisher:
|
||||
lib.load_games(args.download_publisher)
|
||||
|
|
|
|||
|
|
@ -11,8 +11,9 @@ from itchiodl import utils
|
|||
class Game:
|
||||
"""Representation of a game download"""
|
||||
|
||||
def __init__(self, data, human_folders: bool):
|
||||
def __init__(self, data, human_folders: bool, output_dir: str):
|
||||
self.human_folders = human_folders
|
||||
self.output_path = Path(output_dir)
|
||||
|
||||
self.data = data["game"]
|
||||
self.name = self.data["title"]
|
||||
|
|
@ -40,7 +41,7 @@ class Game:
|
|||
self.files = []
|
||||
self.downloads = []
|
||||
self.dir = (
|
||||
Path(".")
|
||||
self.output_path
|
||||
/ utils.clean_path(self.publisher_slug)
|
||||
/ utils.clean_path(self.game_slug)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -12,11 +12,12 @@ from itchiodl.utils import NoDownloadError
|
|||
class Library:
|
||||
"""Representation of a user's game library"""
|
||||
|
||||
def __init__(self, login, jobs=4, human_folders=False):
|
||||
def __init__(self, login, jobs=4, human_folders=False, output_dir="."):
|
||||
self.login = login
|
||||
self.games = []
|
||||
self.jobs = jobs
|
||||
self.human_folders = human_folders
|
||||
self.output_dir = output_dir
|
||||
|
||||
def load_game_page(self, page):
|
||||
"""Load a page of games via the API"""
|
||||
|
|
@ -28,7 +29,7 @@ class Library:
|
|||
j = json.loads(r.text)
|
||||
|
||||
for s in j["owned_keys"]:
|
||||
self.games.append(Game(s, self.human_folders))
|
||||
self.games.append(Game(s, self.human_folders, self.output_dir))
|
||||
|
||||
return len(j["owned_keys"])
|
||||
|
||||
|
|
@ -55,7 +56,7 @@ class Library:
|
|||
)
|
||||
k = gsp.json()
|
||||
if k != {"uploads": {}}:
|
||||
self.games.append(Game(k, self.human_folders))
|
||||
self.games.append(Game(k, self.human_folders, self.output_dir))
|
||||
return
|
||||
print(f"{title} is a purchased game.")
|
||||
i = 1
|
||||
|
|
@ -86,7 +87,7 @@ class Library:
|
|||
headers={"Authorization": self.login},
|
||||
)
|
||||
k = json.loads(gsp.text)
|
||||
self.games.append(Game(k, self.human_folders))
|
||||
self.games.append(Game(k, self.human_folders, self.output_dir))
|
||||
|
||||
def download_library(self, platform=None):
|
||||
"""Download all games in the library"""
|
||||
|
|
|
|||
Loading…
Reference in a new issue