mirror of
https://github.com/cranci1/Sora.git
synced 2026-03-11 17:45:37 +00:00
Hopefully a crash fix
ModuleManger updates cant edit the array it's reading
This commit is contained in:
parent
b9eb5f2700
commit
5835a6ef8f
1 changed files with 22 additions and 6 deletions
|
|
@ -206,9 +206,17 @@ class ModuleManager: ObservableObject {
|
|||
}
|
||||
|
||||
func refreshModules() async {
|
||||
for (index, module) in modules.enumerated() {
|
||||
let modulesCopy = modules
|
||||
var updatedModules: [(Int, ScrapingModule)] = []
|
||||
|
||||
for (index, module) in modulesCopy.enumerated() {
|
||||
do {
|
||||
let (metadataData, _) = try await URLSession.custom.data(from: URL(string: module.metadataUrl)!)
|
||||
guard let metadataUrl = URL(string: module.metadataUrl) else {
|
||||
Logger.shared.log("Invalid metadata URL for module: \(module.metadata.sourceName)", type: "Error")
|
||||
continue
|
||||
}
|
||||
|
||||
let (metadataData, _) = try await URLSession.custom.data(from: metadataUrl)
|
||||
let newMetadata = try JSONDecoder().decode(ModuleMetadata.self, from: metadataData)
|
||||
|
||||
if newMetadata.version != module.metadata.version {
|
||||
|
|
@ -232,14 +240,22 @@ class ModuleManager: ObservableObject {
|
|||
isActive: module.isActive
|
||||
)
|
||||
|
||||
self.modules[index] = updatedModule
|
||||
self.saveModules()
|
||||
|
||||
Logger.shared.log("Updated module: \(module.metadata.sourceName) to version \(newMetadata.version)")
|
||||
updatedModules.append((index, updatedModule))
|
||||
Logger.shared.log("Prepared update for module: \(module.metadata.sourceName) to version \(newMetadata.version)")
|
||||
}
|
||||
} catch {
|
||||
Logger.shared.log("Failed to refresh module: \(module.metadata.sourceName) - \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
|
||||
if !updatedModules.isEmpty {
|
||||
for (index, updatedModule) in updatedModules {
|
||||
if index < modules.count {
|
||||
modules[index] = updatedModule
|
||||
}
|
||||
}
|
||||
saveModules()
|
||||
Logger.shared.log("Successfully updated \(updatedModules.count) modules")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue