X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=99ebc6d7356e9745389f5076c79eb0e12cd4f7b3;hb=b29cf0908e6dfd2b55220a3a7e44200f2fe5b19e;hp=ff50c84dc30eed89c1674eea3eb9da3cf911d7c2;hpb=8267f9d6c363afdb68f28d84837cb05f95aacc0b;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index ff50c84..99ebc6d 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -56,6 +56,16 @@ import freenet.keys.FreenetURI; */ public class Core extends AbstractService { + /** The default Sones. */ + private static final Set defaultSones = new HashSet(); + + static { + /* Sone of Sone. */ + defaultSones.add("USK@eRHt0ceFsHjRZ11j6dd68RSdIvfd8f9YjJLZ9lnhEyo,iJWjIWh6TkMZm1NY8qBranKTIuwsCPkVPG6T6c6ft-I,AQACAAE/Sone/3"); + /* Sone of Bombe. */ + defaultSones.add("USK@RuW~uAO35Ipne896-1OmaVJNPuYE4ZIB5oZ5ziaU57A,7rV3uiyztXBDt03DCoRiNwiGjgFCJuznM9Okc1opURU,AQACAAE/Sone/24"); + } + /** * Enumeration for the possible states of a {@link Sone}. * @@ -92,13 +102,13 @@ public class Core extends AbstractService { private SoneDownloader soneDownloader; /** The Sone blacklist. */ - private final Set blacklistedSones = new HashSet(); + private final Set blacklistedSones = Collections.synchronizedSet(new HashSet()); /** The local Sones. */ - private final Set localSones = new HashSet(); + private final Set localSones = Collections.synchronizedSet(new HashSet()); /** Sone inserters. */ - private final Map soneInserters = new HashMap(); + private final Map soneInserters = Collections.synchronizedMap(new HashMap()); /** The Sones’ statuses. */ private final Map soneStatuses = Collections.synchronizedMap(new HashMap()); @@ -106,13 +116,13 @@ public class Core extends AbstractService { /* various caches follow here. */ /** Cache for all known Sones. */ - private final Map soneCache = new HashMap(); + private final Map soneCache = Collections.synchronizedMap(new HashMap()); /** Cache for all known posts. */ - private final Map postCache = new HashMap(); + private final Map postCache = Collections.synchronizedMap(new HashMap()); /** Cache for all known replies. */ - private final Map replyCache = new HashMap(); + private final Map replyCache = Collections.synchronizedMap(new HashMap()); /** * Creates a new core. @@ -505,6 +515,7 @@ public class Core extends AbstractService { } else { addSone(parsedSone); } + setSoneStatus(parsedSone, SoneStatus.idle); } } catch (MalformedURLException mue1) { logger.log(Level.INFO, "Could not create URI from “" + requestUri + "”.", mue1); @@ -642,8 +653,8 @@ public class Core extends AbstractService { * The post to check for * @return All Sones that like the post */ - public Set getLikes(final Post post) { - return Filters.filteredSet(getSones(), new Filter() { + public Collection getLikes(final Post post) { + return Filters.filteredCollection(getKnownSones(), new Filter() { @Override public boolean filterObject(Sone sone) { @@ -659,8 +670,8 @@ public class Core extends AbstractService { * The reply to check for * @return All Sones that like the reply */ - public Set getLikes(final Reply reply) { - return Filters.filteredSet(getSones(), new Filter() { + public Collection getLikes(final Reply reply) { + return Filters.filteredCollection(getKnownSones(), new Filter() { @Override public boolean filterObject(Sone sone) { @@ -711,6 +722,15 @@ public class Core extends AbstractService { // /** + * Adds some default Sones. + */ + private void addDefaultSones() { + for (String soneUri : defaultSones) { + loadSone(soneUri); + } + } + + /** * Loads the configuration. */ @SuppressWarnings("unchecked") @@ -720,10 +740,7 @@ public class Core extends AbstractService { boolean firstStart = configuration.getBooleanValue("FirstStart").getValue(true); if (firstStart) { logger.log(Level.INFO, "First start of Sone, adding a couple of default Sones…"); - /* Sone’s Sone. */ - loadSone("USK@eRHt0ceFsHjRZ11j6dd68RSdIvfd8f9YjJLZ9lnhEyo,iJWjIWh6TkMZm1NY8qBranKTIuwsCPkVPG6T6c6ft-I,AQACAAE/Sone/0"); - /* Bombe’s Sone. */ - loadSone("USK@RuW~uAO35Ipne896-1OmaVJNPuYE4ZIB5oZ5ziaU57A,7rV3uiyztXBDt03DCoRiNwiGjgFCJuznM9Okc1opURU,AQACAAE/Sone/15"); + addDefaultSones(); try { configuration.getBooleanValue("FirstStart").setValue(false); } catch (ConfigurationException ce1) { @@ -754,6 +771,7 @@ public class Core extends AbstractService { options.getBooleanOption("ReallyClearOnNextRestart").set(null); if (clearConfiguration) { /* stop loading the configuration. */ + addDefaultSones(); return; }