X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2Fservlet%2FConfig.java;h=78db69450d15e10a2c5ae9ef1741cfa723ca32e1;hb=88a7ba9745b8318ca6c4f741906a40e3d6a8f07e;hp=fec3770a6c0a25459afb0910af389b4ff73aa624;hpb=6d94fd5a39e6f78a68201230bd57b9ceb95e125d;p=pnews.git diff --git a/war/src/main/java/pnews/servlet/Config.java b/war/src/main/java/pnews/servlet/Config.java index fec3770..78db694 100644 --- a/war/src/main/java/pnews/servlet/Config.java +++ b/war/src/main/java/pnews/servlet/Config.java @@ -4,6 +4,9 @@ import java.io.IOException; 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; @@ -19,6 +22,7 @@ import javax.json.JsonObject; import javax.json.JsonString; import javax.json.JsonValue; +import pnews.Article; import pnews.Category; import pnews.Feed; import pnews.Language; @@ -28,6 +32,7 @@ public class Config { private Category[] categories; private Language[] languages; private final Set blacklistedEntities = new HashSet<>(); + private final HashMap entityAliases = new HashMap<>(); private static final String CLASS_NAME = Config.class.getName(); /** @@ -83,13 +88,13 @@ public class Config { } 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; @@ -97,7 +102,28 @@ public class Config { 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 { @@ -158,6 +184,17 @@ public class Config { 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; }