aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/EnsureMetadataTask.cpp
AgeCommit message (Collapse)Author
2023-01-25refactor: make shared_qobject_ptr ctor explicitflow
This turns issues like creating two shared ptrs from a single raw ptr from popping up at runtime, instead making them a compile error. Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13fix(ModUpdater): fail mods individually when there's errors in the JSONflow
Prevents a single problematic mod from invalidating all the API response. Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13refactor: change some ResourceAPI from NetJob to Taskflow
This makes it easier to create resource apis that aren't network-based. Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13refactor: generalize mod models and APIs to resourcesflow
Firstly, this abstract away behavior in the mod download models that can also be applied to other types of resources into a superclass, allowing other resource types to be implemented without so much code duplication. For that, this also generalizes the APIs used (currently, ModrinthAPI and FlameAPI) to be able to make requests to other types of resources. It also does a general cleanup of both of those. In particular, this makes use of std::optional instead of invalid values for errors and, well, optional values :p This is a squash of some commits that were becoming too interlaced together to be cleanly separated. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-28fix: Mod type enum -> Resource type enumflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-28Merge pull request #1052 from flowln/resource_modelSefa Eyeoglu
2022-08-20refactor: move general info from Mod to Resourceflow
This allows us to create other resources that are not Mods, but can still share a significant portion of code. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05fix: don't mutate QHash while iterating over itflow
Even though it was using a QMutableHashIterator, sometimes it didn't work quite well, so this is a bit better. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05fix: add some more nullptr checks / protectionflow
die sigsegv :gun: Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24refactor+feat: improve code separation in ensure metadataflow
... and avoid calculating the same hash multiple times Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24feat: do incremental calculation of CF's hashflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24feat: use QIODevice for calcuating the JAR hash on Modrinthflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: bogus returns in EnsureMetadataTaskflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: std::list -> QListflow
Qt6 removed Qlist::toStdList() :sob: Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17change: make Mod a QObject used as a pointerflow
Prevents problems when copying it around! Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: handling around disabled modsflow
Don't update disabled mods to prevent mod duplication. Also, chop filename in the metadata with a '.disabled'. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17feat: improve metadata gen. networking and performanceflow
This makes the metadata generation code a lot messier and harder to use, but there's not really much else that can be done about it while preserving all it's capabilities :( At least we now have speed Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17feat: add EnsureMetadataTaskflow
This task is responsible for checking if the mod has metadata for a specific provider, and create it if it doesn't. In the context of the mod updater, this is not the best architecture, since we do a single task for each mod. However, this way of structuring it allows us to use it later on in more diverse scenarios. This way we decouple this task from the mod updater, trading off some performance (though that will be mitigated when we have a way of running arbitrary tasks concurrently). Signed-off-by: flow <flowlnlnln@gmail.com>