Create images using the core’s image builder.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 9a5d983..6d90516 100644 (file)
@@ -25,6 +25,7 @@ import static com.google.common.primitives.Longs.tryParse;
 import static java.lang.String.format;
 import static java.util.logging.Level.WARNING;
 import static net.pterodactylus.sone.data.Sone.LOCAL_SONE_FILTER;
+import static net.pterodactylus.sone.data.Sone.toAllAlbums;
 
 import java.net.MalformedURLException;
 import java.util.ArrayList;
@@ -77,6 +78,7 @@ import net.pterodactylus.sone.data.TemporaryImage;
 import net.pterodactylus.sone.database.AlbumBuilder;
 import net.pterodactylus.sone.database.Database;
 import net.pterodactylus.sone.database.DatabaseException;
+import net.pterodactylus.sone.database.ImageBuilder;
 import net.pterodactylus.sone.database.PostBuilder;
 import net.pterodactylus.sone.database.PostProvider;
 import net.pterodactylus.sone.database.PostReplyBuilder;
@@ -609,6 +611,10 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                return database.getAlbum(albumId).orNull();
        }
 
+       public ImageBuilder imageBuilder() {
+               return database.newImageBuilder();
+       }
+
        /**
         * Returns the image with the given ID, creating it if necessary.
         *
@@ -1008,7 +1014,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                        for (PostReply newPostReply : newPostReplies) {
                                eventBus.post(new NewPostReplyFoundEvent(newPostReply));
                        }
-                       for (Album album : sone.getRootAlbum().getAlbums()) {
+                       for (Album album : toAllAlbums.apply(sone)) {
                                database.storeAlbum(album);
                                for (Image image : album.getImages()) {
                                        database.storeImage(image);
@@ -1162,7 +1168,9 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                /* load avatar. */
                String avatarId = configuration.getStringValue(sonePrefix + "/Profile/Avatar").getValue(null);
                if (avatarId != null) {
-                       profile.setAvatar(getImage(avatarId, false));
+                       final Map<String, Image> images =
+                                       configurationSoneParser.getImages();
+                       profile.setAvatar(images.get(avatarId));
                }
 
                /* load options. */
@@ -1191,6 +1199,12 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                                sone.getRootAlbum().addAlbum(album);
                        }
                        soneInserters.get(sone).setLastInsertFingerprint(lastInsertFingerprint);
+                       for (Album album : toAllAlbums.apply(sone)) {
+                               database.storeAlbum(album);
+                               for (Image image : album.getImages()) {
+                                       database.storeImage(image);
+                               }
+                       }
                }
                synchronized (knownSones) {
                        for (String friend : friends) {