extract modification date from vCard (vcfParser)

pull/14/head
reger 10 years ago
parent 8768896975
commit 41c4eade51

@ -32,6 +32,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -39,6 +40,7 @@ import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import net.yacy.cora.date.ISO8601Formatter;
import net.yacy.cora.document.encoding.UTF8; import net.yacy.cora.document.encoding.UTF8;
import net.yacy.cora.document.id.AnchorURL; import net.yacy.cora.document.id.AnchorURL;
import net.yacy.cora.order.Base64Order; import net.yacy.cora.order.Base64Order;
@ -81,6 +83,7 @@ public class vcfParser extends AbstractParser implements Parser {
final HashMap<String, String> parsedData = new HashMap<String, String>(); final HashMap<String, String> parsedData = new HashMap<String, String>();
final List<AnchorURL> anchors = new ArrayList<AnchorURL>(); final List<AnchorURL> anchors = new ArrayList<AnchorURL>();
final LinkedList<String> parsedNames = new LinkedList<String>(); final LinkedList<String> parsedNames = new LinkedList<String>();
Date revDate = null; // rev=modified date
boolean useLastLine = false; boolean useLastLine = false;
int lineNr = 0; int lineNr = 0;
@ -183,6 +186,13 @@ public class vcfParser extends AbstractParser implements Parser {
parsedDataText.append(value).append("\r\n"); parsedDataText.append(value).append("\r\n");
} }
parsedDataText.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(); parsedData.clear();
} else if (key.toUpperCase().startsWith("URL")) { } else if (key.toUpperCase().startsWith("URL")) {
try { try {
@ -235,7 +245,7 @@ public class vcfParser extends AbstractParser implements Parser {
null, null,
null, // a treeset of image URLs null, // a treeset of image URLs
false, false,
new Date())}; revDate)}; // modified date
} catch (final Exception e) { } catch (final Exception e) {
if (e instanceof InterruptedException) throw (InterruptedException) e; if (e instanceof InterruptedException) throw (InterruptedException) e;
if (e instanceof Parser.Failure) throw (Parser.Failure) e; if (e instanceof Parser.Failure) throw (Parser.Failure) e;

Loading…
Cancel
Save