From 99d56d936fdebc99994ce5089e8f063729a2e0ec Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 26 Aug 2019 10:06:20 -0400 Subject: [PATCH] logmeonce csv importer --- src/importers/logMeOnceCsvImporter.ts | 31 +++++++++++++++++++++++++++ src/services/import.service.ts | 4 ++++ 2 files changed, 35 insertions(+) create mode 100644 src/importers/logMeOnceCsvImporter.ts diff --git a/src/importers/logMeOnceCsvImporter.ts b/src/importers/logMeOnceCsvImporter.ts new file mode 100644 index 00000000000..d7ff04e8a0f --- /dev/null +++ b/src/importers/logMeOnceCsvImporter.ts @@ -0,0 +1,31 @@ +import { BaseImporter } from './baseImporter'; +import { Importer } from './importer'; + +import { ImportResult } from '../models/domain/importResult'; + +export class LogMeOnceCsvImporter extends BaseImporter implements Importer { + parse(data: string): ImportResult { + const result = new ImportResult(); + const results = this.parseCsv(data, false); + if (results == null) { + result.success = false; + return result; + } + + results.forEach((value) => { + if (value.length < 4) { + return; + } + const cipher = this.initLoginCipher(); + cipher.name = this.getValueOrDefault(value[0], '--'); + cipher.login.username = this.getValueOrDefault(value[2]); + cipher.login.password = this.getValueOrDefault(value[3]); + cipher.login.uris = this.makeUriArray(value[1]); + this.cleanupCipher(cipher); + result.ciphers.push(cipher); + }); + + result.success = true; + return result; + } +} diff --git a/src/services/import.service.ts b/src/services/import.service.ts index 47ad31a9be0..1a1ac5a92d3 100644 --- a/src/services/import.service.ts +++ b/src/services/import.service.ts @@ -43,6 +43,7 @@ import { KeePass2XmlImporter } from '../importers/keepass2XmlImporter'; import { KeePassXCsvImporter } from '../importers/keepassxCsvImporter'; import { KeeperCsvImporter } from '../importers/keeperCsvImporter'; import { LastPassCsvImporter } from '../importers/lastpassCsvImporter'; +import { LogMeOnceCsvImporter } from '../importers/logMeOnceCsvImporter'; import { MeldiumCsvImporter } from '../importers/meldiumCsvImporter'; import { MSecureCsvImporter } from '../importers/msecureCsvImporter'; import { MykiCsvImporter } from '../importers/mykiCsvImporter'; @@ -119,6 +120,7 @@ export class ImportService implements ImportServiceAbstraction { { id: 'passwordwallettxt', name: 'PasswordWallet (txt)' }, { id: 'mykicsv', name: 'Myki (csv)' }, { id: 'securesafecsv', name: 'SecureSafe (csv)' }, + { id: 'logmeoncecsv', name: 'LogMeOnce (csv)' }, ]; constructor(private cipherService: CipherService, private folderService: FolderService, @@ -255,6 +257,8 @@ export class ImportService implements ImportServiceAbstraction { return new MykiCsvImporter(); case 'securesafecsv': return new SecureSafeCsvImporter(); + case 'logmeoncecsv': + return new LogMeOnceCsvImporter(); default: return null; }