import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalUnit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import javax.json.JsonString;
import javax.json.JsonValue;
+import pnews.Article;
import pnews.Category;
import pnews.Feed;
import pnews.Language;
private Category[] categories;
private Language[] languages;
private final Set<String> blacklistedEntities = new HashSet<>();
+ private final HashMap<String, String> entityAliases = new HashMap<>();
private static final String CLASS_NAME = Config.class.getName();
/**
}
private void loadEntities(JsonObject jroot) {
- JsonObject jentities;
+ JsonObject jentities, jaliases;
JsonArray jblacklist;
final String METHOD_NAME = "loadEntities";
jentities = jroot.getJsonObject("entities");
- jblacklist = jentities.getJsonArray("blacklist");
+ jblacklist = jentities.getJsonArray("blacklist");
jblacklist.forEach((jv)-> {
JsonString js;
blacklistedEntities.add(js.getString());
});
+ jaliases = jentities.getJsonObject("aliases");
+ jaliases.forEach((k, v)-> {
+ JsonArray jsources = (JsonArray)v;
+
+ jsources.forEach((jsource)-> {
+ entityAliases.put(((JsonString)jsource).getString(), k);
+ });
+ });
+
LOG.logp(Level.FINEST, CLASS_NAME, METHOD_NAME, " blacklistedEntities=" + blacklistedEntities);
+ LOG.logp(Level.FINEST, CLASS_NAME, METHOD_NAME, " entityAliases=" + entityAliases);
+ }
+
+ public String getEntityAlias(String entity) {
+ String result;
+
+ result = entityAliases.get(entity);
+
+ if (result == null)
+ return entity;
+ else
+ return result;
}
public void loadConfig() throws UnsupportedEncodingException {
return result;
}
+ public boolean isObsolete(Instant instant) {
+ Instant olderInstant;
+
+ olderInstant = Instant.now().minus(60, ChronoUnit.DAYS);
+
+ if (instant.isAfter(olderInstant))
+ return false;
+ else
+ return true;
+ }
+
public Feed[] getFeeds() {
return feeds;
}