From 2aecb2ffb36f29eaf3918646531b3fcf0ac1ded7 Mon Sep 17 00:00:00 2001 From: Daniel Apatin Date: Fri, 20 Apr 2018 15:20:01 +0300 Subject: [PATCH] Update ItemsParsing.swift --- MTMR/ItemsParsing.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift index f7965e9..a01af0c 100644 --- a/MTMR/ItemsParsing.swift +++ b/MTMR/ItemsParsing.swift @@ -83,7 +83,7 @@ class SupportedTypesHolder { return (item: .weather(interval: interval ?? 1800.00, units: units ?? "metric", api_key: api_key ?? "32c4256d09a4c52b38aecddba7a078f6", icon_type: icon_type ?? "text"), action: action, parameters: [:]) }, "currency": { decoder in - enum CodingKeys: String, CodingKey { case refreshInterval; case from; case to; case action } + enum CodingKeys: String, CodingKey { case refreshInterval; case from; case to } let container = try decoder.container(keyedBy: CodingKeys.self) let interval = try container.decodeIfPresent(Double.self, forKey: .refreshInterval) let from = try container.decodeIfPresent(String.self, forKey: .from) @@ -167,6 +167,7 @@ enum ItemType: Decodable { case icon_type case formatTemplate case image + case url } enum ItemTypeRaw: String, Decodable { @@ -223,6 +224,7 @@ enum ActionType: Decodable { case appleSctipt(source: SourceProtocol) case shellScript(executable: String, parameters: [String]) case custom(closure: ()->()) + case openUrl(url: String) private enum CodingKeys: String, CodingKey { case action @@ -230,6 +232,7 @@ enum ActionType: Decodable { case actionAppleScript case executablePath case shellArguments + case url } private enum ActionTypeRaw: String, Decodable { @@ -237,6 +240,7 @@ enum ActionType: Decodable { case keyPress case appleScript case shellScript + case openUrl } init(from decoder: Decoder) throws { @@ -256,6 +260,9 @@ enum ActionType: Decodable { let executable = try container.decode(String.self, forKey: .executablePath) let parameters = try container.decodeIfPresent([String].self, forKey: .shellArguments) ?? [] self = .shellScript(executable: executable, parameters: parameters) + case .some(.openUrl): + let url = try container.decode(String.self, forKey: .url) + self = .openUrl(url: url) case .none: self = .none } @@ -287,6 +294,8 @@ func ==(lhs: ActionType, rhs: ActionType) -> Bool { return a == b case let (.shellScript(a, b), .shellScript(c, d)): return a == c && b == d + case let (.openUrl(a), .openUrl(b)): + return a == b default: return false }