X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.kt;h=3f70ad715ee194dbff92ee055c09700b64a2d99a;hp=78a17f55ddcbefa75f0998218931821b4c8a1afb;hb=07d3fa7dac96e8a5eff41487d647974df8c26f8d;hpb=afa3d007f883a710a94f74d21c179a006974bc7e diff --git a/src/main/kotlin/net/pterodactylus/sone/data/Sone.kt b/src/main/kotlin/net/pterodactylus/sone/data/Sone.kt index 78a17f5..3f70ad7 100644 --- a/src/main/kotlin/net/pterodactylus/sone/data/Sone.kt +++ b/src/main/kotlin/net/pterodactylus/sone/data/Sone.kt @@ -37,3 +37,17 @@ val niceNameComparator: Comparator = @get:JvmName("lastActivityComparator") // TODO: remove once Sone is 100% Kotlin val lastActivityComparator: Comparator = comparing(Sone::getTime).reversed() + +/** + * Comparator that sorts Sones by their [post count][Sone.getPosts] (most posts + * first) and, failing that, by their [reply count][Sone.getReplies] (most + * replies first). + */ +@get:JvmName("postCountComparator") // TODO: remove once Sone is 100% Kotlin +val postCountComparator: Comparator = + comparing { it.posts.size } + .thenComparing { it.replies.size } + .reversed() + +val imageCountComparator: Comparator = + comparing { it.rootAlbum.allImages.size }.reversed()