Commit graph

680 commits

Author SHA1 Message Date
derrod d15f05fc60 [utils] Add janky WINE registry manipulation 2021-12-31 17:31:04 +01:00
derrod 08267025b4 [cli] Stop adding registry entries that already exist 2021-12-31 17:06:44 +01:00
derrod 9469d3cb6f [cli] Add crossover parameters to skip interactive selection 2021-12-31 14:48:08 +01:00
derrod 2e6335bf09 [cli/utils] Simplify imports 2021-12-31 14:44:32 +01:00
derrod 688910bf91 [cli] Make --yes work with crossover command 2021-12-31 14:38:23 +01:00
derrod e771ccdf19 [cli] Fix conflict between timeout/third-party flags 2021-12-31 14:35:05 +01:00
derrod a4c6dee7ef [cli] Allow downloading a bottle more than once 2021-12-30 19:16:29 +01:00
derrod d70f0daa22 [utils] Fix get_integer_choice behaviour
In my defense, the original function was 100% generated by
GitHub Copilot.
2021-12-30 19:05:23 +01:00
derrod cd74af8832 [core] Fix remove_bottle parameters 2021-12-30 19:04:44 +01:00
derrod 0f481e1f31 [core/utils] Remove missing folder creation
Instead, the manifest will just use zero-byte ".keep" files in empty
folders, so they are still created when a bottle is downloaded.
2021-12-30 18:09:11 +01:00
derrod 3fed7d2614 [api] Treat timeout <= 0 as no timeout 2021-12-30 17:42:18 +01:00
derrod 013792f7b9 [cli/core/utils] Add experimental automatic bottle setup
Not sure if this will make it into the release yet, but
it doesn't seem like a bad idea. And it should work even
if the user has never run CrossOver.

It's quite a lot of work to package a bottle this way
(read: not including personal data, and without broken symlinks)
2021-12-30 17:21:56 +01:00
derrod 8512a9a7a1 [utils] Also only allow two empty invalid inputs 2021-12-30 17:11:52 +01:00
derrod af08f5d11b [cli] Fix overlay install error message (no resume) 2021-12-30 16:25:02 +01:00
derrod dfaccba2cb [cli] Fix crossover subcommand name 2021-12-30 15:36:03 +01:00
derrod fc66f9f372 [downloader/mp] Also kill workers on interrupt if they don't exit themselves 2021-12-30 14:34:02 +01:00
derrod 2474c43b7b [cli] Move crossover setup to its own command 2021-12-30 14:16:19 +01:00
derrod 300110e2bc [cli] Add CrossOver support to Origin launch 2021-12-30 14:03:50 +01:00
derrod b8e5dac0d6 [cli] Fix wrong argument being set during import
Fixes #391
2021-12-30 12:49:07 +01:00
derrod 3cba1c8510 [cli] Sort commands alphabetically 2021-12-30 12:42:05 +01:00
derrod 03ef95923d [api/cli/core] Make API timeout configurable 2021-12-30 12:03:43 +01:00
derrod dd099c0afd [core] Change overlay install path 2021-12-30 11:52:23 +01:00
derrod 99c97032b4 [api] Fix GQL API requests
These need to use a different User-Agent for some reason.
2021-12-29 21:14:59 +01:00
derrod 2adc0b1a3e [core] Avoid unnecessary disk writes when assets didn't change 2021-12-29 20:29:07 +01:00
derrod 0d491aed90 [cli] Improve CrossOver option help text 2021-12-29 13:21:34 +01:00
derrod a0da79bc2c [cli] Add support for launching with CrossOver on macOS 2021-12-29 13:21:34 +01:00
derrod f0f4b545f5 [utils] Add get_int_choice helper 2021-12-29 13:21:34 +01:00
derrod 3d877185b0 [core] Add support for launching via CrossOver 2021-12-29 13:21:34 +01:00
derrod b5a2fba896 [utils] Add helpers for CrossOver on macOS 2021-12-29 13:21:34 +01:00
derrod 33b89f5e9a [cli] Suggest "info" command to check for platform support
rather than having the user search through a potentially very long
games list...
2021-12-29 13:21:34 +01:00
Wok 75f2da576b [api] Fix wrong attribute name (#388) 2021-12-29 13:21:34 +01:00
derrod d2a6f16060 [cli] Fix log level for launch message 2021-12-29 11:56:16 +01:00
derrod 0e4ab85b2f [core] Do not attempt to load overlay info on non-Windows systems 2021-12-29 11:32:11 +01:00
derrod bc1c27b8d2 [core] Ignore path parameter if overlay is already installed 2021-12-28 19:21:33 +01:00
derrod e5ba44ecfa [cli] Show both current and new version in Overlay update notice 2021-12-28 18:17:13 +01:00
derrod b5120fa99d [lfs] Cache overlay info in memory to avoid unnecessary reads 2021-12-28 18:14:59 +01:00
derrod 4a743dc1ca [cli] Fix overlay install path check on install 2021-12-28 17:51:35 +01:00
derrod c7030c480e [lfs] Fix log message 2021-12-28 17:48:55 +01:00
derrod cb69d7c9d7 [utils] Add more debug logging 2021-12-28 17:48:45 +01:00
derrod 8d71df0cc4 [cli/core/lfs] Add update check for installed overlay 2021-12-28 17:48:24 +01:00
derrod efaf25b9d9 [cli/core/lfs] Add EOS overlay management command/backend
- Supports installing and updating the overlay
- Supports enabling/disabling the overlay
- Can find existing EGL overlay for enabling/disabling
- Should work!
2021-12-28 17:47:48 +01:00
derrod 21d62dcd76 [downloader/mp] Fix status message formatting for odd cache usage 2021-12-28 17:39:10 +01:00
derrod b6cb31df8b [cli/models/utils] Move strtobool into legendary utils
Fixes deprecation warning on Python 3.10+
2021-12-28 17:37:26 +01:00
derrod 1fd8acdee4 [cli] Use argparse choices instead of manual check 2021-12-28 14:21:11 +01:00
derrod 599e4766b2 [cli] Fix some formatting 2021-12-28 14:03:26 +01:00
derrod e60c3f7aa7 [utils] Add EOS Overlay utilities
- Registry adding/removal code
- Dummy Game()s for downloading
2021-12-28 13:55:10 +01:00
derrod a4c1f0e670 [utils] Add Windows registry helpers 2021-12-28 13:53:59 +01:00
derrod d941b9d61e [api] Fix API URL and add some comments clarifying argument names 2021-12-28 11:12:54 +01:00
derrod 6b91c5779b [cli] Add get-token flag to get bearer token rather than exchange code 2021-12-28 10:57:22 +01:00
derrod fbb4acbc88 [core] Add option to force refresh token instead of session resumption 2021-12-28 10:57:22 +01:00
derrod ed0ac1e0b2 [api] Add currently unused artifact APIs found in EOS Windows service 2021-12-28 10:57:22 +01:00
derrod 3c831da310 [api] Add support for anonymous EOS sessions
These can be used to download the launcher and overlay/service updates
without actually having to authenticate an account.
2021-12-28 10:11:26 +01:00
derrod 335619ff79 [cli] Do not override platform in "info" command
Also improve missing asset error.
2021-12-28 10:09:08 +01:00
derrod 363ac15faa [cli] Error out if no asset exists for specified platform 2021-12-28 10:04:37 +01:00
derrod d61946d15d [lfs] Explicitly set UTF-8 encoding for EGL files
Should fix #383
2021-12-23 07:22:41 +01:00
derrod 352d3d2d0d [cli] Hide -c/--config-file option
Using it can cause a bunch of problems, and I don't want to
encourage its use, so deprecate/hide it for now, then remove
it once I have a better solution.
2021-12-22 08:28:23 +01:00
derrod 0e72950382 [cli] Add -H/--full-help and only show command list by default
The full help has gotten too long, just print the commands by default.
2021-12-22 08:24:23 +01:00
derrod 11850228a8 Bump version 2021-12-22 00:05:48 +01:00
derrod 8c087fc90e [cli] Add external activation to "info" 2021-12-21 23:59:00 +01:00
derrod 508c6a3a58 [cli] Add "get-token" debug command 2021-12-21 23:58:40 +01:00
derrod 71633333b7 [cli] Remove non-functional Origin activation on Linux 2021-12-21 23:28:24 +01:00
derrod 3e4c70ece2 [core] Only use installed manifest for repair if it actually exists
Fixes #380
2021-12-20 23:15:47 +01:00
derrod c3ade2994e [cli/core/utils] Re-enable SDL for Mac platform
Currently, this only affects Fortnite and UE.
2021-12-17 01:25:24 +01:00
derrod 6c35504058 [cli] Fix wrong type in cleanup command
Fixes #378
2021-12-14 14:30:33 +01:00
derrod fa02ed396e Bump version (hotfix #2) 2021-12-12 23:34:10 +01:00
derrod 48cab6af57 [cli] Also activate Ubisoft DLC (untested) 2021-12-11 18:50:30 +01:00
derrod 01ec2ccd89 [cli] Error out if no game files are found, suggest corrected path 2021-12-11 16:34:07 +01:00
derrod 797598322d [cli] Fix checking for game executable on import 2021-12-11 16:23:12 +01:00
derrod 803fc46249 Bump version (hotfix) 2021-12-08 00:49:31 +01:00
derrod 57d88b2db4 [core] Fix non-threaded metadata updates 2021-12-08 00:44:24 +01:00
derrod 6106433153 [cli] Disable SDL for Mac titles 2021-12-08 00:22:44 +01:00
derrod e0ad2171bf [cli] Add notice about Ubisoft activation to list-games 2021-12-06 19:33:55 +01:00
derrod db5cd43047 [cli] Add Origin activation process to "activate" command 2021-12-06 19:33:36 +01:00
derrod eb8bc3713b [cli] Rename --include-non-installable to -T/--third-party 2021-12-06 19:31:39 +01:00
derrod 9d18ef03fa [cli/core/models] Add property for partner link id/type 2021-12-06 18:10:30 +01:00
derrod 4dd495e2f5 [cli] Add aliases for --uplay 2021-12-06 13:20:48 +01:00
derrod 8c50f051a7 Bump version 2021-12-03 23:02:12 +01:00
derrod 82376e3d57 [cli] Allow setting default platform via config 2021-12-03 21:01:30 +01:00
derrod 694a275dac [core] Fix platform linking warning 2021-12-03 18:08:21 +01:00
derrod e11dd8734f [cli] Make pre-installation check results stand out more 2021-12-03 18:01:24 +01:00
derrod db1a6706e4 [cli] I a word when opening the auth/link URLs 2021-12-03 17:54:14 +01:00
derrod e1b5245252 [cli] Improve Ubisoft activation messaging 2021-12-03 17:23:24 +01:00
derrod c8189460c2 [cli/core] Fix some plurals 2021-12-03 17:21:48 +01:00
derrod 1c8349a28e [core] Do not show fetching metadata message unless there's data to fetch 2021-12-03 17:14:45 +01:00
derrod 20f934dc12 [core] Avoid unnecessary copy() 2021-12-03 16:27:19 +01:00
derrod 8dadf3c1a1 [core] Do not delete unused asset information when updating
Previously this would remove asset information for platforms not
currently in-use. This change retains those, but doesn't update
them if they're not required.
2021-12-03 16:27:00 +01:00
derrod d737ca57a7 [core/egs] Use thread pool for fetching metadata 2021-12-03 16:23:48 +01:00
derrod 5671448264 [core] Rework Uplay warning 2021-12-03 14:30:01 +01:00
derrod e71ab3155e [cli/api/models] Add "activate" command to redeem Uplay games 2021-12-03 14:07:57 +01:00
derrod a8e35e9f3b [cli] Show download url for PyInstaller build updates 2021-12-03 12:47:07 +01:00
derrod c33f9a0084 [cli] Enable save-sync of Mac titles 2021-12-02 17:06:08 +01:00
derrod 90a4efdfbf [core] Fix path expansion for macOS savegame variables 2021-12-02 17:05:50 +01:00
derrod 32e9ef1cd3 [core] Fix wrong property name for SaveGame 2021-12-02 16:55:02 +01:00
derrod 9511d9d65b [core] Fix metadata prune removing required data 2021-12-02 16:53:09 +01:00
derrod 6f7989ab50 [cli/core/utils/lfs] Also enable update notification on macOS 2021-12-02 16:51:48 +01:00
derrod 9e21a81c96 [cli] install: Set platform when getting game metadata 2021-12-02 16:16:52 +01:00
derrod 1dfc5aabe7 [cli/core/models/utils] macOS cloud save support 2021-12-02 15:24:01 +01:00
derrod 4eaa608370 [cli] Set default platform to Mac when running on macOS 2021-12-02 15:23:16 +01:00
derrod aeecaa4d3e [cli] Show warning if platform may be invalid 2021-12-02 15:22:13 +01:00
derrod 7151470197 [core] Fix getting game metadata for new titles 2021-12-02 15:10:54 +01:00
derrod 8fb4c56730 [cli] Fix some remaining platform-unawareness 2021-12-02 14:34:29 +01:00
derrod 4fd50a93a0 [core] Always update asset information for all in-use platforms 2021-12-02 14:29:08 +01:00
derrod 356f0f84f5 [cli/core/models] Access namespace/catalog item id directly 2021-12-02 14:28:21 +01:00
derrod 999ff36667 [cli] Include platform in installed list
Also remove stray debug print
2021-12-02 13:35:56 +01:00
derrod fe912246a5 [cli] Fix variable overlap 2021-12-02 13:31:55 +01:00
derrod 2ff6712932 [cli] Fix help text for --platform options 2021-12-01 22:14:49 +01:00
derrod 260c0e97a2 [cli] Include platform in status output 2021-12-01 22:04:30 +01:00
derrod 42aae4eccf [core] Do not show locale error on macOS 2021-12-01 21:59:53 +01:00
derrod f00d23c8c4 [core] Cleanup imports 2021-12-01 21:58:56 +01:00
derrod 0fb3d39a0a [core] Check if game is not-None before updating asset info 2021-12-01 21:38:44 +01:00
derrod c83bf7218c [core] Remove remaining hardcoded platform strings 2021-12-01 21:30:41 +01:00
derrod 24832ea074 [cli] Add --platform to import 2021-12-01 21:30:15 +01:00
derrod 8c56bd93d5 [core/lfs] Include platform in saved manifest name 2021-12-01 21:26:21 +01:00
derrod 081cca2c19 [core] Check all platforms for metadata prune 2021-12-01 21:20:11 +01:00
derrod de24ee8157 [cli] Do not crash if DLC is missing metadata for some reason
Fixes #371
2021-12-01 21:19:40 +01:00
derrod 0d1592266b [cli] Set platform argument default 2021-12-01 21:06:39 +01:00
derrod e8207d53cd [cli/core] Ensure update checks use the right platform(s) 2021-12-01 21:02:38 +01:00
derrod f280d53496 [cli/core/lfs] Add support for mixing platforms 2021-12-01 20:57:43 +01:00
derrod ee3f9a3e07 [models] Migrate app info to dataclasses, split platforms 2021-12-01 20:46:10 +01:00
derrod d0d37c40e7 [models/downloader] Add task flag to make file executable 2021-12-01 20:45:17 +01:00
derrod c43833146a [core] Subtract reusable size from required disk space
Fixes #362
2021-10-29 17:30:16 +02:00
derrod 926e89c89a [models] Explicitly specify serialisation version
Newer features may not be supported, so don't use the (potentially unsupported)
ones we read from the input.
2021-10-29 14:27:15 +02:00
derrod 3145fdb534 [models] Make manifest deserializer skip unknown data instead of failing 2021-10-29 14:19:52 +02:00
derrod eacb8eb006 [models] Add tentative support for new file manifest fields
Why on earth would anybody want MD5 hashes?
2021-10-29 14:04:17 +02:00
derrod b27879f21f Bump version 2021-10-29 12:43:00 +02:00
derrod 22b9c5c932 [models] Skip over unknown data in manifest 2021-10-29 12:40:18 +02:00
derrod 33ad64f0a4 [core] Only fail if absolutely no base-url can be found
Overrides without a known base-url should work.
2021-10-28 10:34:28 +02:00
derrod 07415d944c Bump version 2021-10-22 04:37:34 +02:00
derrod aaf7e0934f [core/utils] Attempt to find save path case-insensitively 2021-10-22 04:29:39 +02:00
derrod 106ed16a49 [cli/core] Do not delete merely incomplete saves unless user says so 2021-10-21 14:27:08 +02:00
derrod 658cc94dbe [core] Include app name in clean-saves command for specific game 2021-10-21 14:11:53 +02:00
derrod 8181f9faeb [core] Log number of deleted files (if any) 2021-10-21 14:10:14 +02:00
derrod 964ee08d05 [core] Add references to "clean-saves" in error message 2021-10-21 13:28:33 +02:00
derrod 355b1107e6 [cli/core] Add "clean-saves" command to remove obsolete/broken cloud save data 2021-10-21 13:26:36 +02:00
derrod 85a275950d [core] Show warnings and error out if save data is corrupted 2021-10-21 13:26:00 +02:00
derrod d5ec14b556 [core] Fix resolving "{AppData}" in save path
Why did they decide that {AppData} should match to %LOCALAPPDATA%?
2021-10-21 12:15:44 +02:00
derrod 2146a45104 [cli] Explicitly set CSV/TSV line terminator
Fixes #358
2021-10-21 11:39:11 +02:00
derrod 856c5ef2ee [cli] Abort install if game is managed by third party store 2021-10-16 19:47:19 +02:00
derrod 0ef916e9c5 [cli/lfs] Prune game metadata that's no longer needed 2021-10-16 19:44:48 +02:00
derrod 8c002a76e0 [cli/core] Replace old manual game store query with new property 2021-10-16 19:44:15 +02:00
derrod 9462aa331f [models] Add "third_party_store" property to Game 2021-10-16 19:42:47 +02:00
derrod 7f53746ee6 [cli] Show note when no game information is available 2021-10-16 19:33:59 +02:00
derrod b57735abf3 [core] Show warning in "info" if game asset is unavailable
Also disable manifest download as that will probably fail.
2021-10-16 18:59:54 +02:00
derrod 841db6bcb6 [core] Add "asset_available" helper function 2021-10-16 18:59:18 +02:00
derrod fa9e650ea1 [cli] Ensure "info" JSON output items are null if empty 2021-10-16 18:58:20 +02:00
derrod e6bb64f16f [core] Only delete files that are actually installed (based on tags) 2021-10-12 15:24:49 +02:00
derrod 07ae84c6a0 [lfs/utils] Prevent app name colliding with itself 2021-10-12 15:00:11 +02:00
derrod 054a3ea7eb Bump version 2021-10-10 17:27:15 +02:00
derrod 27c92e3555 [cli] Add more descriptive error message when directory no longer exists
Fixes #258
2021-10-10 17:17:42 +02:00
derrod 6d3a8af70b [cli] Make it possible to uninstall DLC 2021-10-10 17:08:05 +02:00