X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FSoneImpl.java;h=87bd7a6fcb16e6943fdfab0df6d40d131eb37228;hp=ce0f5c1dc3b8ec899aaff29e731e2a0b35fd761a;hb=509b81185b3a1e82bb78308640d0d7b6b741d3e0;hpb=179e7da4d8d8a474d0b622d60b5f5d32d6ab4052 diff --git a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java index ce0f5c1..87bd7a6 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java @@ -1,5 +1,5 @@ /* - * Sone - SoneImpl.java - Copyright © 2010–2019 David Roden + * Sone - SoneImpl.java - Copyright © 2010–2020 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +19,9 @@ package net.pterodactylus.sone.data.impl; import static com.google.common.base.Preconditions.checkNotNull; import static java.lang.String.format; +import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.logging.Logger.getLogger; +import static net.pterodactylus.sone.data.SoneKt.*; import java.net.MalformedURLException; import java.util.ArrayList; @@ -35,6 +37,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.pterodactylus.sone.data.Album; +import net.pterodactylus.sone.data.AlbumsKt; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; @@ -45,7 +48,6 @@ import net.pterodactylus.sone.data.SoneOptions; import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions; import net.pterodactylus.sone.database.Database; import net.pterodactylus.sone.freenet.wot.Identity; -import net.pterodactylus.sone.freenet.wot.OwnIdentity; import freenet.keys.FreenetURI; @@ -190,26 +192,6 @@ public class SoneImpl implements Sone { } /** - * Returns the insert URI of this Sone. - * - * @return The insert URI of this Sone - */ - @Nullable - public FreenetURI getInsertUri() { - if (!isLocal()) { - return null; - } - try { - return new FreenetURI(((OwnIdentity) getIdentity()).getInsertUri()) - .setDocName("Sone") - .setMetaString(new String[0]) - .setSuggestedEdition(latestEdition); - } catch (MalformedURLException e) { - throw new IllegalStateException(format("Own identity %s's insert URI is incorrect.", getIdentity()), e); - } - } - - /** * Returns the latest edition of this Sone. * * @return The latest edition of this Sone @@ -634,46 +616,46 @@ public class SoneImpl implements Sone { @Override public synchronized String getFingerprint() { Hasher hash = Hashing.sha256().newHasher(); - hash.putString(profile.getFingerprint()); + hash.putString(profile.getFingerprint(), UTF_8); - hash.putString("Posts("); + hash.putString("Posts(", UTF_8); for (Post post : getPosts()) { - hash.putString("Post(").putString(post.getId()).putString(")"); + hash.putString("Post(", UTF_8).putString(post.getId(), UTF_8).putString(")", UTF_8); } - hash.putString(")"); + hash.putString(")", UTF_8); List replies = new ArrayList<>(getReplies()); Collections.sort(replies, Reply.TIME_COMPARATOR); - hash.putString("Replies("); + hash.putString("Replies(", UTF_8); for (PostReply reply : replies) { - hash.putString("Reply(").putString(reply.getId()).putString(")"); + hash.putString("Reply(", UTF_8).putString(reply.getId(), UTF_8).putString(")", UTF_8); } - hash.putString(")"); + hash.putString(")", UTF_8); List likedPostIds = new ArrayList<>(getLikedPostIds()); Collections.sort(likedPostIds); - hash.putString("LikedPosts("); + hash.putString("LikedPosts(", UTF_8); for (String likedPostId : likedPostIds) { - hash.putString("Post(").putString(likedPostId).putString(")"); + hash.putString("Post(", UTF_8).putString(likedPostId, UTF_8).putString(")", UTF_8); } - hash.putString(")"); + hash.putString(")", UTF_8); List likedReplyIds = new ArrayList<>(getLikedReplyIds()); Collections.sort(likedReplyIds); - hash.putString("LikedReplies("); + hash.putString("LikedReplies(", UTF_8); for (String likedReplyId : likedReplyIds) { - hash.putString("Reply(").putString(likedReplyId).putString(")"); + hash.putString("Reply(", UTF_8).putString(likedReplyId, UTF_8).putString(")", UTF_8); } - hash.putString(")"); + hash.putString(")", UTF_8); - hash.putString("Albums("); + hash.putString("Albums(", UTF_8); for (Album album : rootAlbum.getAlbums()) { - if (!Album.NOT_EMPTY.apply(album)) { + if (!AlbumsKt.notEmpty().invoke(album)) { continue; } - hash.putString(album.getFingerprint()); + hash.putString(album.getFingerprint(), UTF_8); } - hash.putString(")"); + hash.putString(")", UTF_8); return hash.hash().toString(); } @@ -685,7 +667,7 @@ public class SoneImpl implements Sone { /** {@inheritDoc} */ @Override public int compareTo(Sone sone) { - return NICE_NAME_COMPARATOR.compare(this, sone); + return niceNameComparator().compare(this, sone); } //