import java.util.List;
import net.pterodactylus.sone.core.Core;
+import net.pterodactylus.sone.data.LocalSone;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.freenet.fcp.FcpException;
+import com.google.common.base.Optional;
import com.google.common.collect.Collections2;
import freenet.support.SimpleFieldSet;
*/
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", true);
+ LocalSone sone = getLocalSone(parameters, "Sone", true).get();
int startPost = getInt(parameters, "StartPost", 0);
int maxPosts = getInt(parameters, "MaxPosts", -1);
Collection<Post> allPosts = new HashSet<Post>();
allPosts.addAll(sone.getPosts());
for (String friendSoneId : sone.getFriends()) {
- if (!getCore().hasSone(friendSoneId)) {
+ Optional<Sone> friendSone = getCore().getSone(friendSoneId);
+ if (!friendSone.isPresent()) {
continue;
}
- allPosts.addAll(getCore().getSone(friendSoneId).getPosts());
+ allPosts.addAll(friendSone.get().getPosts());
}
allPosts.addAll(getCore().getDirectedPosts(sone.getId()));
allPosts = Collections2.filter(allPosts, Post.FUTURE_POSTS_FILTER);