|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
from getpass import getuser
|
|
|
|
from pathlib import Path
|
|
|
|
from steamsync import SteamSync
|
|
|
|
|
|
|
|
|
|
|
|
sync = SteamSync(Path("~/Nextcloud/Misc/Savegames").expanduser())
|
|
|
|
|
|
|
|
# Find home
|
|
|
|
steamns_home = Path("~/.local/steam/home/%s/" % getuser()).expanduser()
|
|
|
|
if steamns_home.exists():
|
|
|
|
sync.home_path = steamns_home
|
|
|
|
|
|
|
|
|
|
|
|
### -----------------------------------------------------------------
|
|
|
|
# Steam Games
|
|
|
|
### -----------------------------------------------------------------
|
|
|
|
@sync.by_name("zanzarah")
|
|
|
|
def zanzarah(op):
|
|
|
|
with op.game_directory.prefix("Save") as set:
|
|
|
|
set += "*.dat"
|
|
|
|
if set.show_confirm():
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
@sync.by_id(787860) # Farming Simulator 19
|
|
|
|
def fs19(op):
|
|
|
|
with op.my_documents.prefix("My Games/FarmingSimulator2019") as set:
|
|
|
|
set.add(
|
|
|
|
"music/streamingInternetRadios.xml",
|
|
|
|
"savegame[1-9]",
|
|
|
|
"savegame[1-2][0-9]"
|
|
|
|
"VERSION",
|
|
|
|
)
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
@sync.by_name("Fell Seal")
|
|
|
|
def fell_seal(op):
|
|
|
|
with op.home.prefix("Fell Seal") as set:
|
|
|
|
set += "saves"
|
|
|
|
set += "customdata"
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
@sync.by_name("Sacred Gold")
|
|
|
|
def sacred(op):
|
|
|
|
with op.game_directory.prefix("save") as set:
|
|
|
|
set += "GAME*.PAK"
|
|
|
|
set += "hero*.pax"
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
@sync.by_id(39540) # SpellForce Platinum
|
|
|
|
def spellforce(op):
|
|
|
|
sync = op.steam_cloud_ufs()
|
|
|
|
if sync.show_confirm():
|
|
|
|
sync.execute()
|
|
|
|
|
|
|
|
@sync.by_id(1282590) # Train Sim World 2
|
|
|
|
def tsw2(op):
|
|
|
|
with op.my_documents.prefix("My Games/TrainSimWorld2/Saved/SaveGames") as set:
|
|
|
|
set += "*.sav"
|
|
|
|
if set.show_confirm():
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
|
|
|
|
@sync.by_id(1366540) # Dyson Sphere Program
|
|
|
|
def dyson_sphere_program(op):
|
|
|
|
with op.my_documents.prefix("Dyson Sphere Program") as set:
|
|
|
|
set += "Save"
|
|
|
|
if set.show_confirm():
|
|
|
|
set.execute()
|
|
|
|
|
|
|
|
### -----------------------------------------------------------------
|
|
|
|
# Other Games
|
|
|
|
### -----------------------------------------------------------------
|
|
|
|
@sync.wine("Final Fantasy XIV",
|
|
|
|
['/media/Games/Lutris/Final Fantasy XIV'],
|
|
|
|
lambda p: p.my_documents / "My Games/FINAL FANTASY XIV - A Realm Reborn")
|
|
|
|
def ffxiv(op):
|
|
|
|
with op.found as set:
|
|
|
|
set += "FFXIV_CHR*/*.dat"
|
|
|
|
if set.show_confirm():
|
|
|
|
set.backup()
|
|
|
|
set.commit()
|
|
|
|
|
|
|
|
@sync.wine("Dragon Age Inquisition",
|
|
|
|
['/media/Games/Lutris/Dragon Age Inquisition'],
|
|
|
|
lambda p: p.my_documents / "BioWare/Dragon Age Inquisition")
|
|
|
|
def da_i(op):
|
|
|
|
with op.found / "Save" as set:
|
|
|
|
# XXX: Sync ProfileOptions{,_profile} too?
|
|
|
|
set += "*.DAS"
|
|
|
|
if set.show_confirm():
|
|
|
|
set.backup()
|
|
|
|
set.commit()
|