Bump version to 0.3.1, add the missing config.py file

Good job git
This commit is contained in:
Ryszard Knop 2022-06-12 19:50:43 +02:00
parent 2acd1482ad
commit 8ae034a139
3 changed files with 59 additions and 2 deletions

View File

@ -1 +1 @@
__version__ = '0.3.0' __version__ = '0.3.1'

57
itch_dl/config.py Normal file
View File

@ -0,0 +1,57 @@
import os
import json
import logging
import platform
from typing import Optional
import requests
from pydantic import BaseModel
from . import __version__
class Settings(BaseModel):
"""Available settings for itch-dl. Make sure all of them
have default values, as the config file may not exist."""
api_key: Optional[str] = None
user_agent: str = f"python-requests/{requests.__version__} itch-dl/{__version__}"
def create_and_get_config_path() -> str:
"""Returns the configuration directory in the appropriate
location for the current OS. The directory may not exist."""
system = platform.system()
if system == "Linux":
base_path = os.environ.get('XDG_CONFIG_HOME') or os.path.expanduser('~/.config/')
elif system == "Darwin":
base_path = os.path.expanduser('~/Library/Application Support/')
elif system == "Windows":
base_path = os.environ.get('APPDATA') or os.path.expanduser('~/AppData/Roaming/')
else:
raise NotImplementedError(f"Unknown platform: {system}")
return os.path.join(base_path, "itch-dl")
def load_config(profile: Optional[str] = None) -> Settings:
"""Loads the configuration from the file system if it exists,
the returns a Settings object."""
config_path = create_and_get_config_path()
config_file_path = os.path.join(config_path, "config.json")
profile_file_path = os.path.join(config_path, "profiles", profile or "")
if os.path.isfile(config_file_path):
logging.debug(f"Found config file: {config_file_path}")
with open(config_file_path) as f:
config_data = json.load(f)
else:
config_data = {}
if os.path.isfile(profile_file_path):
logging.debug(f"Found profile: {profile_file_path}")
with open(config_file_path) as f:
profile_data = json.load(f)
config_data.update(profile_data)
return Settings(**config_data)

View File

@ -1,7 +1,7 @@
[tool.poetry] [tool.poetry]
name = "itch-dl" name = "itch-dl"
packages = [{ include = "itch_dl" }] packages = [{ include = "itch_dl" }]
version = "0.3.0" version = "0.3.1"
description = "itch.io bulk game downloader" description = "itch.io bulk game downloader"
homepage = "https://github.com/DragoonAethis/itch-dl" homepage = "https://github.com/DragoonAethis/itch-dl"
repository = "https://github.com/DragoonAethis/itch-dl" repository = "https://github.com/DragoonAethis/itch-dl"