X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParser.kt;h=0063148732a1b09b5c858df59dde1131361179f5;hp=690ce6d5f2389a45ef4c8c199fe0b73a0cda8491;hb=c84755453de2f6a59fc20114aff832b94c8ecd83;hpb=a2369ab3b5b0f3f6dcc9d9fd1fcdc02c3003da64 diff --git a/src/main/kotlin/net/pterodactylus/sone/text/SoneTextParser.kt b/src/main/kotlin/net/pterodactylus/sone/text/SoneTextParser.kt index 690ce6d..0063148 100644 --- a/src/main/kotlin/net/pterodactylus/sone/text/SoneTextParser.kt +++ b/src/main/kotlin/net/pterodactylus/sone/text/SoneTextParser.kt @@ -17,11 +17,12 @@ import net.pterodactylus.sone.text.LinkType.SSK import net.pterodactylus.sone.text.LinkType.USK import org.bitpedia.util.Base32 import java.net.MalformedURLException +import javax.inject.* /** * [Parser] implementation that can recognize Freenet URIs. */ -class SoneTextParser(private val soneProvider: SoneProvider?, private val postProvider: PostProvider?) { +class SoneTextParser @Inject constructor(private val soneProvider: SoneProvider?, private val postProvider: PostProvider?) { fun parse(source: String, context: SoneTextParserContext?) = source.split("\n") @@ -68,7 +69,7 @@ class SoneTextParser(private val soneProvider: SoneProvider?, private val postPr SSK, USK -> try { FreenetURI(link).let { uri -> - uri.docName ?: "${uri.keyType}@${uri.routingKey.freenetBase64}" + uri.allMetaStrings?.lastOrNull() ?: uri.docName ?: "${uri.keyType}@${uri.routingKey.freenetBase64}" }.let { FreenetLinkPart(link, it, trusted = context?.routingKey?.contentEquals(FreenetURI(link).routingKey) == true) } } catch (e: MalformedURLException) { PlainTextPart(link)