diff --git a/lib/vcardparser.js b/lib/vcardparser.js index dcbeda2..a0b13d0 100644 --- a/lib/vcardparser.js +++ b/lib/vcardparser.js @@ -1,6 +1,6 @@ /* * @package vcardparser -* @copyright (©) Wouter Vroege +* @copyright (©) Wouter Vroege * @author Wouter Vroege */ @@ -8,15 +8,31 @@ parse vcard to object */ -function parseVCardToObject(vcard) { - card = stripUnixChars(vcard); - cardLines = splitAtNewLines(card); - propertyLines = evalProperties(cardLines); - propertiesChunks = parseLinesToPropertiesChunks(propertyLines); - properties = parseChunksToProperties(propertiesChunks); - return properties; +function parseVCardToObject(data) { + vcards = splitCards(data); + var properties = []; + for (var i in vcards) { + card = stripUnixChars(vcards[i]); + cardLines = splitAtNewLines(card); + propertyLines = evalProperties(cardLines); + propertiesChunks = parseLinesToPropertiesChunks(propertyLines); + properties.push(parseChunksToProperties(propertiesChunks)); + } + return properties; } +/* + split multiple cards + */ + +function splitCards(string) { + var vcards = string.split('BEGIN:VCARD'); + vcards.shift(); + vcards.map(function (i) { + return 'BEGIN:VCARD' + i; + }); + return vcards; +} /* parse string */ @@ -301,4 +317,4 @@ function parsePhoto(base64string, types) { //export exports.parseString = parseString; -exports.parseFile = parseFile; \ No newline at end of file +exports.parseFile = parseFile;