From d9752a8002e60fe7f1efce035c45e73e7fce33c8 Mon Sep 17 00:00:00 2001 From: Francesco <100066266+cranci1@users.noreply.github.com> Date: Tue, 22 Apr 2025 17:26:04 +0200 Subject: [PATCH] fixed crash???? please yes --- Sora/Utils/Modules/ModuleManager.swift | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Sora/Utils/Modules/ModuleManager.swift b/Sora/Utils/Modules/ModuleManager.swift index 9c1d48d..1a50dd2 100644 --- a/Sora/Utils/Modules/ModuleManager.swift +++ b/Sora/Utils/Modules/ModuleManager.swift @@ -14,6 +14,15 @@ class ModuleManager: ObservableObject { private let modulesFileName = "modules.json" init() { + let url = getModulesFilePath() + if (!FileManager.default.fileExists(atPath: url.path)) { + do { + try "[]".write(to: url, atomically: true, encoding: .utf8) + Logger.shared.log("Created empty modules file", type: "Info") + } catch { + Logger.shared.log("Failed to create modules file: \(error.localizedDescription)", type: "Error") + } + } loadModules() NotificationCenter.default.addObserver(self, selector: #selector(handleModulesSyncCompleted), name: .modulesSyncDidComplete, object: nil) } @@ -42,11 +51,17 @@ class ModuleManager: ObservableObject { func loadModules() { let url = getModulesFilePath() - guard let data = try? Data(contentsOf: url) else { return } - modules = (try? JSONDecoder().decode([ScrapingModule].self, from: data)) ?? [] - Task { - await checkJSModuleFiles() + do { + let data = try Data(contentsOf: url) + modules = (try? JSONDecoder().decode([ScrapingModule].self, from: data)) ?? [] + + Task { + await checkJSModuleFiles() + } + } catch { + Logger.shared.log("Failed to load modules: \(error.localizedDescription)", type: "Error") + modules = [] } }