projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Store Sones in database only.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
core
/
SoneDownloaderImpl.java
diff --git
a/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java
b/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java
index
1e1484d
..
28d4521
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java
+++ b/
src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java
@@
-24,8
+24,10
@@
import static java.util.concurrent.TimeUnit.DAYS;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@@
-43,6
+45,7
@@
import net.pterodactylus.sone.data.Sone.SoneStatus;
import net.pterodactylus.sone.data.SoneImpl;
import net.pterodactylus.sone.database.PostBuilder;
import net.pterodactylus.sone.database.PostReplyBuilder;
import net.pterodactylus.sone.data.SoneImpl;
import net.pterodactylus.sone.database.PostBuilder;
import net.pterodactylus.sone.database.PostReplyBuilder;
+import net.pterodactylus.sone.database.SoneBuilder;
import net.pterodactylus.util.io.Closer;
import net.pterodactylus.util.logging.Logging;
import net.pterodactylus.util.number.Numbers;
import net.pterodactylus.util.io.Closer;
import net.pterodactylus.util.logging.Logging;
import net.pterodactylus.util.number.Numbers;
@@
-276,7
+279,11
@@
public class SoneDownloaderImpl extends AbstractService implements SoneDownloade
return null;
}
return null;
}
- Sone sone = new SoneImpl(originalSone.getId(), originalSone.isLocal()).setIdentity(originalSone.getIdentity());
+ SoneBuilder soneBuilder = core.soneBuilder().from(originalSone.getIdentity());
+ if (originalSone.isLocal()) {
+ soneBuilder = soneBuilder.local();
+ }
+ Sone sone = soneBuilder.build();
SimpleXML soneXml;
try {
SimpleXML soneXml;
try {
@@
-344,10
+351,6
@@
public class SoneDownloaderImpl extends AbstractService implements SoneDownloade
}
}
}
}
- if (originalSone.getInsertUri() != null) {
- sone.setInsertUri(originalSone.getInsertUri());
- }
-
SimpleXML profileXml = soneXml.getNode("profile");
if (profileXml == null) {
/* TODO - mark Sone as bad. */
SimpleXML profileXml = soneXml.getNode("profile");
if (profileXml == null) {
/* TODO - mark Sone as bad. */
@@
-477,6
+480,7
@@
public class SoneDownloaderImpl extends AbstractService implements SoneDownloade
/* parse albums. */
SimpleXML albumsXml = soneXml.getNode("albums");
/* parse albums. */
SimpleXML albumsXml = soneXml.getNode("albums");
+ Map<String, Image> allImages = new HashMap<String, Image>();
List<Album> topLevelAlbums = new ArrayList<Album>();
if (albumsXml != null) {
for (SimpleXML albumXml : albumsXml.getNodes("album")) {
List<Album> topLevelAlbums = new ArrayList<Album>();
if (albumsXml != null) {
for (SimpleXML albumXml : albumsXml.getNodes("album")) {
@@
-531,10
+535,11
@@
public class SoneDownloaderImpl extends AbstractService implements SoneDownloade
logger.log(Level.WARNING, String.format("Downloaded Sone %s contains image %s with invalid dimensions (%s, %s)!", sone, imageId, imageWidthString, imageHeightString));
return null;
}
logger.log(Level.WARNING, String.format("Downloaded Sone %s contains image %s with invalid dimensions (%s, %s)!", sone, imageId, imageWidthString, imageHeightString));
return null;
}
- Image image = core.
getImage(imageId
).modify().setSone(sone).setKey(imageKey).setCreationTime(creationTime).update();
+ Image image = core.
imageBuilder().withId(imageId).build(
).modify().setSone(sone).setKey(imageKey).setCreationTime(creationTime).update();
image = image.modify().setTitle(imageTitle).setDescription(imageDescription).update();
image = image.modify().setWidth(imageWidth).setHeight(imageHeight).update();
album.addImage(image);
image = image.modify().setTitle(imageTitle).setDescription(imageDescription).update();
image = image.modify().setWidth(imageWidth).setHeight(imageHeight).update();
album.addImage(image);
+ allImages.put(imageId, image);
}
}
album.modify().setAlbumImage(albumImageId).update();
}
}
album.modify().setAlbumImage(albumImageId).update();
@@
-543,7
+548,7
@@
public class SoneDownloaderImpl extends AbstractService implements SoneDownloade
/* process avatar. */
if (avatarId != null) {
/* process avatar. */
if (avatarId != null) {
- profile.setAvatar(
core.getImage(avatarId, false
));
+ profile.setAvatar(
allImages.get(avatarId
));
}
/* okay, apparently everything was parsed correctly. Now import. */
}
/* okay, apparently everything was parsed correctly. Now import. */