Skip to content

Commit 600e5f9

Browse files
committed
Address review comments
1 parent 25bc2d3 commit 600e5f9

File tree

15 files changed

+47
-54
lines changed

15 files changed

+47
-54
lines changed

readium/opds/src/main/java/org/readium/r2/opds/OPDS1Parser.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,20 @@ public object Namespaces {
5050
public class OPDS1Parser {
5151
public companion object {
5252

53-
public suspend fun parseUrlString(url: String, client: HttpClient = DefaultHttpClient()): Try<ParseData, Exception> {
53+
public suspend fun parseUrlString(
54+
url: String,
55+
client: HttpClient = DefaultHttpClient(
56+
DefaultMediaTypeSniffer()
57+
)
58+
): Try<ParseData, Exception> {
5459
return client.fetchWithDecoder(HttpRequest(url)) {
5560
this.parse(it.body, URL(url))
5661
}
5762
}
5863

5964
public suspend fun parseRequest(
6065
request: HttpRequest,
61-
client: HttpClient = DefaultHttpClient()
66+
client: HttpClient = DefaultHttpClient(DefaultMediaTypeSniffer())
6267
): Try<ParseData, Exception> {
6368
return client.fetchWithDecoder(request) {
6469
this.parse(it.body, URL(request.url))
@@ -192,7 +197,7 @@ public class OPDS1Parser {
192197
@Suppress("unused")
193198
public suspend fun retrieveOpenSearchTemplate(
194199
feed: Feed,
195-
client: HttpClient = DefaultHttpClient()
200+
client: HttpClient = DefaultHttpClient(DefaultMediaTypeSniffer())
196201
): Try<String?, Exception> {
197202
var openSearchURL: URL? = null
198203
var selfMimeType: MediaType? = null

readium/opds/src/main/java/org/readium/r2/opds/OPDS2Parser.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,20 @@ public class OPDS2Parser {
4545

4646
private lateinit var feed: Feed
4747

48-
public suspend fun parseUrlString(url: String, client: HttpClient = DefaultHttpClient()): Try<ParseData, Exception> {
48+
public suspend fun parseUrlString(
49+
url: String,
50+
client: HttpClient = DefaultHttpClient(
51+
DefaultMediaTypeSniffer()
52+
)
53+
): Try<ParseData, Exception> {
4954
return client.fetchWithDecoder(HttpRequest(url)) {
5055
this.parse(it.body, URL(url))
5156
}
5257
}
5358

5459
public suspend fun parseRequest(
5560
request: HttpRequest,
56-
client: HttpClient = DefaultHttpClient()
61+
client: HttpClient = DefaultHttpClient(DefaultMediaTypeSniffer())
5762
): Try<ParseData, Exception> {
5863
return client.fetchWithDecoder(request) {
5964
this.parse(it.body, URL(request.url))

readium/shared/src/main/java/org/readium/r2/shared/asset/Asset.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
package org.readium.r2.shared.asset
88

9+
import org.readium.r2.shared.resource.Container as SharedContainer
910
import org.readium.r2.shared.resource.Resource as SharedResource
1011
import org.readium.r2.shared.util.mediatype.MediaType
1112

@@ -58,7 +59,7 @@ public sealed class Asset {
5859
public class Container(
5960
override val mediaType: MediaType,
6061
exploded: Boolean,
61-
public val container: org.readium.r2.shared.resource.Container
62+
public val container: SharedContainer
6263
) : Asset() {
6364

6465
override val assetType: AssetType =

readium/shared/src/main/java/org/readium/r2/shared/publication/services/ContentProtectionService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ private sealed class RouteHandler {
316316
return if (!copyAllowed) {
317317
FailureResource(Resource.Exception.Forbidden())
318318
} else {
319-
StringResource("true")
319+
StringResource("true", MediaType.JSON)
320320
}
321321
}
322322
}

readium/shared/src/main/java/org/readium/r2/shared/resource/BytesResource.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ public sealed class BaseBytesResource(
4848
/** Creates a Resource serving a [ByteArray]. */
4949
public class BytesResource(
5050
url: Url? = null,
51-
mediaType: MediaType = MediaType.BINARY,
51+
mediaType: MediaType,
5252
properties: Resource.Properties = Resource.Properties(),
5353
bytes: suspend () -> ResourceTry<ByteArray>
5454
) : BaseBytesResource(source = url, mediaType = mediaType, properties = properties, bytes = bytes) {
5555

5656
public constructor(
5757
bytes: ByteArray,
58+
mediaType: MediaType,
5859
url: Url? = null,
59-
mediaType: MediaType = MediaType.BINARY,
6060
properties: Resource.Properties = Resource.Properties()
6161
) :
6262
this(url = url, mediaType = mediaType, properties = properties, { Try.success(bytes) })
@@ -68,7 +68,7 @@ public class BytesResource(
6868
/** Creates a Resource serving a [String]. */
6969
public class StringResource(
7070
url: Url? = null,
71-
mediaType: MediaType = MediaType.TEXT,
71+
mediaType: MediaType,
7272
properties: Resource.Properties = Resource.Properties(),
7373
string: suspend () -> ResourceTry<String>
7474
) : BaseBytesResource(
@@ -80,8 +80,8 @@ public class StringResource(
8080

8181
public constructor(
8282
string: String,
83+
mediaType: MediaType,
8384
url: Url? = null,
84-
mediaType: MediaType = MediaType.TEXT,
8585
properties: Resource.Properties = Resource.Properties()
8686
) :
8787
this(url = url, mediaType = mediaType, properties = properties, { Try.success(string) })

readium/shared/src/main/java/org/readium/r2/shared/resource/MediaTypeExt.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ public class ContainerMediaTypeSnifferContent(
1818
override suspend fun entries(): Set<String>? =
1919
container.entries()?.map { it.path }?.toSet()
2020

21-
override suspend fun read(path: String): ByteArray? =
22-
container.get(path).read().getOrNull()
21+
override suspend fun read(path: String, range: LongRange?): ByteArray? =
22+
container.get(path).read(range).getOrNull()
2323
}

readium/shared/src/main/java/org/readium/r2/shared/util/http/DefaultHttpClient.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.readium.r2.shared.error.flatMap
1919
import org.readium.r2.shared.error.tryRecover
2020
import org.readium.r2.shared.util.http.HttpRequest.Method
2121
import org.readium.r2.shared.util.mediatype.BytesResourceMediaTypeSnifferContent
22-
import org.readium.r2.shared.util.mediatype.DefaultMediaTypeSniffer
2322
import org.readium.r2.shared.util.mediatype.EpubMediaTypeSniffer.sniff
2423
import org.readium.r2.shared.util.mediatype.MediaType
2524
import org.readium.r2.shared.util.mediatype.MediaTypeHints
@@ -38,7 +37,7 @@ import timber.log.Timber
3837
* as the default value, while a timeout of zero as an infinite timeout.
3938
*/
4039
public class DefaultHttpClient(
41-
private val mediaTypeSniffer: MediaTypeSniffer = DefaultMediaTypeSniffer(),
40+
private val mediaTypeSniffer: MediaTypeSniffer,
4241
private val userAgent: String? = null,
4342
private val additionalHeaders: Map<String, String> = mapOf(),
4443
private val connectTimeout: Duration? = null,

readium/shared/src/main/java/org/readium/r2/shared/util/mediatype/MediaTypeSnifferContent.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ public interface ContainerMediaTypeSnifferContent : MediaTypeSnifferContent {
8989
/**
9090
* Returns the entry data at the given [path] in this container.
9191
*/
92-
public suspend fun read(path: String): ByteArray?
92+
public suspend fun read(path: String, range: LongRange? = null): ByteArray?
9393
}
9494

9595
/**
9696
* Returns whether an entry exists in the container.
9797
*/
9898
public suspend fun ContainerMediaTypeSnifferContent.contains(path: String): Boolean =
9999
entries()?.contains(path)
100-
?: (read(path) != null)
100+
?: (read(path, range = 0L..1L) != null)
101101

102102
public class BytesResourceMediaTypeSnifferContent(
103103
bytes: suspend () -> ByteArray

readium/shared/src/test/java/org/readium/r2/shared/publication/PublicationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ class PublicationTest {
385385
override fun get(link: Link): Resource? {
386386
assertFalse(link.templated)
387387
assertEquals("param1=a&param2=b", link.href.substringAfter("?"))
388-
return StringResource("test passed", url = Url(link.href))
388+
return StringResource("test passed", MediaType.TEXT, url = Url(link.href))
389389
}
390390
}
391391

readium/shared/src/test/java/org/readium/r2/shared/publication/protection/TestContainer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.readium.r2.shared.util.mediatype.MediaType
1717
class TestContainer(resources: Map<String, String> = emptyMap()) : Container {
1818

1919
private val entries: Map<String, Entry> =
20-
resources.mapValues { Entry(it.key, StringResource(it.value)) }
20+
resources.mapValues { Entry(it.key, StringResource(it.value, MediaType.TEXT)) }
2121

2222
override suspend fun entries(): Set<Container.Entry> =
2323
entries.values.toSet()

0 commit comments

Comments
 (0)