Commit Graph

26 Commits

Author SHA1 Message Date
kramo
eeb18eb017 Typing 2023-08-16 19:18:03 +02:00
Geoffrey Coulaud
1aff1347e3 Managers refactor (#164)
The main reason for this is the compositing of both local and online covers with the same logic.  
It was a problem raised in #146 with some covers getting stretched.

Changes:
- Renamed and simplified managers methods
- Created a generic `cover manager`
- Added more retryable errors to `steam api manager`
- Removed `local cover manager` and `online cover manager`
- Reduced dependency on `PIL`
2023-07-31 18:44:18 +02:00
kramo
6b46efb0b8 Spelling 2023-06-26 21:46:52 +02:00
GeoffreyCoulaud
3fa80a53c6 🎨 Work on import error handling
- Generic ErrorProducer class
- Importer and managers are error producers
- SGDB Auth friendly error
- Bad source location friendly errors (data, config, cache)
- Removed unused decorators
2023-06-24 15:13:35 +02:00
kramo
9d7a6d8ea4 Add copyright headers 2023-06-17 16:27:10 +02:00
kramo
39bc64c136 Use signals for updating and saving games 2023-06-15 17:37:54 +02:00
kramo
e6afed6678 Cleanups 2023-06-15 15:22:08 +02:00
GeoffreyCoulaud
8eb2a270f6 🎨 Improved manager error handling structure 2023-06-10 14:51:52 +02:00
GeoffreyCoulaud
e7fd01f509 🎨 Made manager attributes more flexible
Changed run_after, retryable_on and continue_on to be type Container.
We don't need them to be sets.

The performance gain of sets over small tuples is nonexistant
for in checks and the  syntax is more verbose.
2023-06-10 12:03:16 +02:00
GeoffreyCoulaud
c9a96f5eec 🎨 Fixed some linter warnings
Applied suggested pylint fixes and suppressed unhelpful pylint messages
2023-06-10 03:30:09 +02:00
GeoffreyCoulaud
842f9fe522 🎨 Various code style / behaviour fixes
- Merged platform sources when possible
- Added URLExecutableSource class
- Moved replaced_by_schema_key to utils/decorators
- Better retryable exception handling in some managers
-  Split SteamHelper into SteamFileHelper and SteamAPIHelper
- Delegated SteamRateLimiter creation to SteamAPIManager init
- Using additional_data for appid in SteamAPIManager
- Added Windows support for Legendary
- Stylistic changed suggested by pylint
2023-06-10 02:59:41 +02:00
GeoffreyCoulaud
9ebd7cf7ee Added Itch source
- Added call stack to unretryable errors in managers
- Added existing itch cover downloading code
- Fixed importer not closing if no source enabled

TODO
- Tidying the itch cover downloading code
- If possible, make save_cover and resize_cover work in AsyncManager-s
2023-06-07 15:33:00 +02:00
GeoffreyCoulaud
5dc6ec899a 🎨 Various changes
- Changed source additional data to dict
- Moved local cover saving into a manager
- Added stub for itch cover manager
2023-06-07 15:00:42 +02:00
GeoffreyCoulaud
98f02da36c 🎨 SourceIterator can yield addtitional data
SourceIterator-s can yield a game and a tuple of additional data.
This data will be passed to the Store, Pipeline and Managers.
2023-06-07 14:01:06 +02:00
GeoffreyCoulaud
ff0ba00733 🎨 Added delay before manager retry 2023-06-05 00:17:41 +02:00
GeoffreyCoulaud
6f77e0d30d Added Steam API rate limiter 2023-06-03 18:49:47 +02:00
GeoffreyCoulaud
10a635fc78 🚧 Thread-safe manager error reporting 2023-06-03 14:18:07 +02:00
GeoffreyCoulaud
ef63210a8f 🎨 Better error handling in managers 2023-05-31 17:21:01 +02:00
GeoffreyCoulaud
d204737339 🚧 More work on resilient managers 2023-05-31 16:54:51 +02:00
GeoffreyCoulaud
0b188136a2 🚧 Initial work on retryable managers 2023-05-31 15:25:59 +02:00
GeoffreyCoulaud
0645808ac4 🐛 Fixed GTK race condition in pipelines 2023-05-29 01:38:36 +02:00
GeoffreyCoulaud
8ddb110cbb Managers use callback functions instead of signals 2023-05-29 00:23:25 +02:00
GeoffreyCoulaud
b99c058cd7 Added blocking/async managers 2023-05-29 00:05:44 +02:00
GeoffreyCoulaud
8da7185d17 Various fixes 2023-05-24 17:30:19 +02:00
kramo
36b6bc17bd Cleanups 2023-05-24 15:36:25 +02:00
GeoffreyCoulaud
a11569014d ♻️ Restructured sources and managers 2023-05-24 15:35:48 +02:00