Version 2.3.2

This commit is contained in:
2026-02-20 14:49:56 +01:00
parent 5f9631077b
commit 41185cc08b
7 changed files with 1842 additions and 1223 deletions

View File

@@ -42,6 +42,7 @@ class SettingsService {
static let googleAPIKey = "googleAPIKey"
static let googleSearchEngineID = "googleSearchEngineID"
static let anytypeMcpAPIKey = "anytypeMcpAPIKey"
static let paperlessAPIToken = "paperlessAPIToken"
}
// Old keychain keys (for migration only)
@@ -446,6 +447,49 @@ class SettingsService {
return !key.isEmpty
}
// MARK: - Paperless-NGX Settings
var paperlessEnabled: Bool {
get { cache["paperlessEnabled"] == "true" }
set {
cache["paperlessEnabled"] = String(newValue)
DatabaseService.shared.setSetting(key: "paperlessEnabled", value: String(newValue))
}
}
var paperlessURL: String {
get { cache["paperlessURL"] ?? "" }
set {
var trimmed = newValue.trimmingCharacters(in: .whitespaces)
// Remove trailing slash for consistency
while trimmed.hasSuffix("/") { trimmed = String(trimmed.dropLast()) }
if trimmed.isEmpty {
cache.removeValue(forKey: "paperlessURL")
DatabaseService.shared.deleteSetting(key: "paperlessURL")
} else {
cache["paperlessURL"] = trimmed
DatabaseService.shared.setSetting(key: "paperlessURL", value: trimmed)
}
}
}
var paperlessAPIToken: String? {
get { try? DatabaseService.shared.getEncryptedSetting(key: EncryptedKeys.paperlessAPIToken) }
set {
if let value = newValue, !value.isEmpty {
try? DatabaseService.shared.setEncryptedSetting(key: EncryptedKeys.paperlessAPIToken, value: value)
} else {
DatabaseService.shared.deleteEncryptedSetting(key: EncryptedKeys.paperlessAPIToken)
}
}
}
var paperlessConfigured: Bool {
guard !paperlessURL.isEmpty else { return false }
guard let token = paperlessAPIToken else { return false }
return !token.isEmpty
}
// MARK: - Search Settings
var searchProvider: Settings.SearchProvider {