Skip to content

Commit

Permalink
Add config_dir Support
Browse files Browse the repository at this point in the history
  • Loading branch information
hhhhhojeihsu committed Jan 5, 2025
1 parent 8eff963 commit 5d9f834
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 14 deletions.
9 changes: 5 additions & 4 deletions steamCloudSaveDownloader/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,11 @@ def __main__():
try:
parsed_args = parse()

utility.save_dir_permission_checking(parsed_args['General']['save_dir'])
utility.dir_permission_checking(parsed_args['General']['save_dir'])
utility.dir_permission_checking(parsed_args['General']['config_dir'])

setup_logger_post_config(
os.path.join(parsed_args['General']['save_dir'], 'scsd.log'),
os.path.join(parsed_args['General']['config_dir'], 'scsd.log'),
parsed_args['Log']['log_level'])

logger.info(f'Options: {parsed_args}')
Expand Down Expand Up @@ -102,14 +103,14 @@ def main(parsed_args, notifier_):
parsed_args['auth'] is not None and \
len(parsed_args['auth']) != 0:
auth_ = auth(
parsed_args['General']['save_dir'],
parsed_args['General']['config_dir'],
parsed_args['General']['2fa'])

auth_.new_session(parsed_args['auth'])
return
elif 'stored' in parsed_args and \
parsed_args['stored'] is not None:
stored_ = stored.stored(parsed_args['stored'], parsed_args['General']['save_dir'])
stored_ = stored.stored(parsed_args['stored'], parsed_args['General']['config_dir'])
stored_.get_result()
return

Expand Down
3 changes: 3 additions & 0 deletions steamCloudSaveDownloader/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
Defaults = {
'General': {
"save_dir": (str, "./data"),
"config_dir": (str, ""),
"2fa": (str, "mobile", ("mobile", "mail"))
},
'Rotation': {
Expand Down Expand Up @@ -137,6 +138,8 @@ def parse_optional_section(self, p_section:str):

def parse_general(self):
self.parse_optional_section('General')
if self.parsed['General']['config_dir'] == "":
self.parsed['General']['config_dir'] = self.parsed['General']['save_dir']

def parse_log(self):
self.parse_optional_section('Log')
Expand Down
22 changes: 17 additions & 5 deletions steamCloudSaveDownloader/downloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def __init__(self, p_parsed_args: dict):
self.notifier = None

self.auth = auth(
p_parsed_args['General']['save_dir'],
p_parsed_args['General']['config_dir'],
p_parsed_args['General']['2fa'])

self.auth.refresh_session()
Expand All @@ -52,15 +52,15 @@ def __init__(self, p_parsed_args: dict):
session_pkl,
p_parsed_args['Danger Zone']['wait_interval'])

self.db = db.db(p_parsed_args['General']['save_dir'],
self.db = db.db(p_parsed_args['General']['config_dir'],
p_parsed_args['Rotation']['rotation'])
self.storage = storage.storage(p_parsed_args['General']['save_dir'], self.db)
self.storage = storage.storage(p_parsed_args['General']['config_dir'], self.db)

logger.info("Getting Game Save List")
self.game_list = self.web.get_list()

def create_lock_file(self):
lock_path = os.path.join(self.parsed_args['General']['save_dir'], downloader.lock_file_name)
lock_path = os.path.join(self.parsed_args['General']['config_dir'], downloader.lock_file_name)
if os.path.isfile(lock_path):
exception = err.err(err.err_enum.LOCKED)
exception.set_additional_info(f" (Path: {lock_path})")
Expand All @@ -70,7 +70,7 @@ def create_lock_file(self):
pass

def delete_lock_file(self):
lock_path = os.path.join(self.parsed_args['General']['save_dir'], downloader.lock_file_name)
lock_path = os.path.join(self.parsed_args['General']['config_dir'], downloader.lock_file_name)
if os.path.isfile(lock_path):
os.remove(lock_path)

Expand Down Expand Up @@ -230,6 +230,13 @@ def send_summary(self):
if self.parsed_args['Notifier']['notify_if_no_change']:
self.notifier.send("No changes", True)

def update_new_games_to_db(self):
for game in self.game_list:
if (self.db.is_game_exist(game['app_id'])):
continue
self.db.add_new_game(game['app_id'], game['name'])
self.storage.create_game_folder(game['name'], game['app_id'])

def download_games(p_parsed_args: dict, p_app_ids: list):
downloader_ = downloader(p_parsed_args)
downloader_.download_games(p_app_ids)
Expand All @@ -238,3 +245,8 @@ def download_all_games(p_parsed_args: dict, p_notifier):
downloader_ = downloader(p_parsed_args)
downloader_.show_summary(p_notifier)
downloader_.download_all_games()

def get_game_list_and_update(p_parsed_args: dict):
downloader_ = downloader(p_parsed_args)
downloader_.update_new_games_to_db()
return downloader_.game_list
6 changes: 3 additions & 3 deletions steamCloudSaveDownloader/stored.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
from .logger import logger

class stored:
def __init__(self, staged_args, save_dir):
def __init__(self, staged_args, config_dir):
self.target = staged_args
self.save_dir = save_dir
self.db = db.db(save_dir)
self.config_dir = config_dir
self.db = db.db(config_dir)

def get_result(self):
id_and_names = self.db.get_stored_game_names(self.target)
Expand Down
2 changes: 1 addition & 1 deletion steamCloudSaveDownloader/utility.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import os

def save_dir_permission_checking(save_dir: str):
def dir_permission_checking(save_dir: str):
err_ = err(err_enum.CANNOT_WRITE_TO_SAVE_DIR)
err_.set_additional_info(f" `{save_dir}`")

Expand Down
3 changes: 2 additions & 1 deletion steamCloudSaveDownloader/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ def __init__(self, login_executor_pkl, wait_interval):
raise err.err(err_enum.INVALID_COOKIE_FORMAT)

# Return list of {"Game": name, "Link", link}
@sleep_and_retry(sleep_and_retry.sleep_policy_e.RANDOM)
# The first action, no sleep
#@sleep_and_retry(sleep_and_retry.sleep_policy_e.RANDOM)
def get_list(self):
response = self.session.get(g_web_link)
if (response.status_code != 200):
Expand Down

0 comments on commit 5d9f834

Please sign in to comment.