projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove debug output
[Sone.git]
/
src
/
main
/
kotlin
/
net
/
pterodactylus
/
sone
/
core
/
DefaultElementLoader.kt
diff --git
a/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt
b/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt
index
ac3ab6a
..
77cf9a8
100644
(file)
--- a/
src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt
+++ b/
src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt
@@
-4,6
+4,8
@@
import com.google.common.base.Ticker
import com.google.common.cache.CacheBuilder
import freenet.keys.FreenetURI
import java.io.ByteArrayInputStream
import com.google.common.cache.CacheBuilder
import freenet.keys.FreenetURI
import java.io.ByteArrayInputStream
+import java.net.URLDecoder
+import java.text.Normalizer
import java.util.concurrent.TimeUnit.MINUTES
import javax.imageio.ImageIO
import javax.inject.Inject
import java.util.concurrent.TimeUnit.MINUTES
import javax.imageio.ImageIO
import javax.inject.Inject
@@
-30,37
+32,41
@@
class DefaultElementLoader(private val freenetInterface: FreenetInterface, ticke
ByteArrayInputStream(data).use {
ImageIO.read(it)
}?.let {
ByteArrayInputStream(data).use {
ImageIO.read(it)
}?.let {
- imageCache.get(uri.toString()) { LinkedElement(uri.toString()) }
+ imageCache.get(uri.toString()
.decode().normalize()
) { LinkedElement(uri.toString()) }
}
removeLoadingLink(uri)
}
override fun failed(uri: FreenetURI) {
}
removeLoadingLink(uri)
}
override fun failed(uri: FreenetURI) {
- failureCache.put(uri.toString(), true)
+ failureCache.put(uri.toString()
.decode().normalize()
, true)
removeLoadingLink(uri)
}
private fun removeLoadingLink(uri: FreenetURI) {
synchronized(loadingLinks) {
removeLoadingLink(uri)
}
private fun removeLoadingLink(uri: FreenetURI) {
synchronized(loadingLinks) {
- loadingLinks.invalidate(uri.toString())
+ loadingLinks.invalidate(uri.toString()
.decode().normalize()
)
}
}
}
override fun loadElement(link: String): LinkedElement {
}
}
}
override fun loadElement(link: String): LinkedElement {
+ val normalizedLink = link.decode().normalize()
synchronized(loadingLinks) {
synchronized(loadingLinks) {
- imageCache.getIfPresent(
l
ink)?.run {
+ imageCache.getIfPresent(
normalizedL
ink)?.run {
return this
}
return this
}
- failureCache.getIfPresent(
l
ink)?.run {
+ failureCache.getIfPresent(
normalizedL
ink)?.run {
return LinkedElement(link, failed = true)
}
return LinkedElement(link, failed = true)
}
- if (loadingLinks.getIfPresent(
l
ink) == null) {
- loadingLinks.put(
l
ink, true)
+ if (loadingLinks.getIfPresent(
normalizedL
ink) == null) {
+ loadingLinks.put(
normalizedL
ink, true)
freenetInterface.startFetch(FreenetURI(link), callback)
}
}
return LinkedElement(link, loading = true)
}
freenetInterface.startFetch(FreenetURI(link), callback)
}
}
return LinkedElement(link, loading = true)
}
+ private fun String.decode() = URLDecoder.decode(this, "UTF-8")
+ private fun String.normalize() = Normalizer.normalize(this, Normalizer.Form.NFC)
+
}
}