Skip to content

Instantly share code, notes, and snippets.

@psykzz
Last active April 30, 2016 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psykzz/b887c539ad3101c153c5fdadfc7c0a4d to your computer and use it in GitHub Desktop.
Save psykzz/b887c539ad3101c153c5fdadfc7c0a4d to your computer and use it in GitHub Desktop.
Script to backup Dark souls 3 saves every 5 mins

Building the EXE yourself

Requirements

  • Python 2.7
  • pyinstaller - pip install pyinstaller

Once everything is installed configure the script and use pyinstaller -F --clean --noupx --win-private-assemblies ds3_save_backup.py.

Your executeable is in ./dist

from os import getenv, listdir, makedirs
from os.path import join, isdir, exists
from datetime import datetime
from shutil import copytree
from time import sleep
dark_souls_folder_name = 'DarkSoulsIII'
save_folder_name = 'save_backups'
backup_interval_secs = 5 * 60
def find_ds3_folder():
if dark_souls_folder_name in listdir(getenv('APPDATA')):
return join(getenv('APPDATA'), dark_souls_folder_name)
def backup_folders(ds3_folder):
current_date = datetime.now()
formatted_date = current_date.strftime("%y%m%d-%H.%M")
folders = [(join(ds3_folder, f), f)
for f in listdir(ds3_folder)
if isdir(join(ds3_folder, f))
and f != save_folder_name]
for full_path, folder_name in folders:
copytree(full_path, join(ds3_folder, save_folder_name, formatted_date, folder_name))
def create_backup_folder(ds3_folder):
save_path = join(ds3_folder, save_folder_name)
if exists(save_path):
return
makedirs(save_path)
def main():
ds3_folder = find_ds3_folder()
if ds3_folder is None:
print("Unable to find DarkSoulsIII folder in '%s'" % (getenv('APPDATA')))
create_backup_folder(ds3_folder)
backup_folders(ds3_folder)
if __name__ == '__main__':
print("Dark souls 3 - Save backup")
print("Backing up every %s secs" % (backup_interval_secs))
print("Backup folder: %s" % (join(getenv('APPDATA'), dark_souls_folder_name, save_folder_name)))
while True:
try:
main()
print("Saved.")
except Exception as e:
print("Save didn't complete. \n%s" % (e))
sleep(float(backup_interval_secs))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment