From 41c4eade51e67fc38ef8b38f641def79377dcb95 Mon Sep 17 00:00:00 2001 From: reger Date: Sun, 6 Sep 2015 04:28:27 +0200 Subject: [PATCH] extract modification date from vCard (vcfParser) --- source/net/yacy/document/parser/vcfParser.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/net/yacy/document/parser/vcfParser.java b/source/net/yacy/document/parser/vcfParser.java index f4c4120e2..0676153f5 100644 --- a/source/net/yacy/document/parser/vcfParser.java +++ b/source/net/yacy/document/parser/vcfParser.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; +import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -39,6 +40,7 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import net.yacy.cora.date.ISO8601Formatter; import net.yacy.cora.document.encoding.UTF8; import net.yacy.cora.document.id.AnchorURL; import net.yacy.cora.order.Base64Order; @@ -81,6 +83,7 @@ public class vcfParser extends AbstractParser implements Parser { final HashMap parsedData = new HashMap(); final List anchors = new ArrayList(); final LinkedList parsedNames = new LinkedList(); + Date revDate = null; // rev=modified date boolean useLastLine = false; int lineNr = 0; @@ -183,6 +186,13 @@ public class vcfParser extends AbstractParser implements Parser { parsedDataText.append(value).append("\r\n"); } parsedDataText.append("\r\n"); + // get specific meta data from parsed key-value + value = parsedData.get("REV"); // modified date + if (value != null && !value.isEmpty()) { + try { + revDate = ISO8601Formatter.FORMATTER.parse(value, 0).getTime(); + } catch(ParseException ex){ } + } parsedData.clear(); } else if (key.toUpperCase().startsWith("URL")) { try { @@ -235,7 +245,7 @@ public class vcfParser extends AbstractParser implements Parser { null, null, // a treeset of image URLs false, - new Date())}; + revDate)}; // modified date } catch (final Exception e) { if (e instanceof InterruptedException) throw (InterruptedException) e; if (e instanceof Parser.Failure) throw (Parser.Failure) e;