From 373c6500f01e3960315924482c593e5fde1c76f0 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Tue, 7 Feb 2017 15:40:23 +0800 Subject: [PATCH] improve decrypted data parser --- pass/Password.swift | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/pass/Password.swift b/pass/Password.swift index 098399a..9bcfea3 100644 --- a/pass/Password.swift +++ b/pass/Password.swift @@ -45,19 +45,28 @@ extension PasswordEntity { var decrypted_password = "" var username = "" var decrypted_addtions = [AdditionField]() + var i = 0 plain.enumerateLines(invoking: { line, _ in - let items = line.characters.split(separator: ":").map(String.init) - if items.count == 1 { - decrypted_password = items[0] + if i == 0 { + decrypted_password = line } else { - let key = items[0] - let value = items[1].trimmingCharacters(in: .whitespaces) - if key.lowercased() == "username" { - username = value + let items = line.characters.split(separator: ":", maxSplits: 1, omittingEmptySubsequences: true).map(String.init) + if items.count == 2 && items[0].lowercased() == "username" { + username = items[1].trimmingCharacters(in: .whitespaces) } else { + var key = "" + var value = "" + if items.count == 1 { + key = "unknown" + value = items[0] + } else { + key = items[0] + value = items[1].trimmingCharacters(in: .whitespaces) + } decrypted_addtions.append(AdditionField(title: key, content: value)) } } + i += 1 }) password = Password(name: name!, username: username, password: decrypted_password, additions: decrypted_addtions) return password