Skip to content

Commit

Permalink
Fixes Satellite's blossom upload
Browse files Browse the repository at this point in the history
  • Loading branch information
vitorpamplona committed Dec 3, 2024
1 parent 6a522f5 commit 869deba
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1508,12 +1508,13 @@ class Account(

fun createBlossomUploadAuth(
hash: HexKey,
size: Long,
alt: String,
onReady: (BlossomAuthorizationEvent) -> Unit,
) {
if (!isWriteable()) return

BlossomAuthorizationEvent.createUploadAuth(hash, alt, signer, onReady = onReady)
BlossomAuthorizationEvent.createUploadAuth(hash, size, alt, signer, onReady = onReady)
}

fun createBlossomDeleteAuth(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class BlossomUploader(
): MediaUploadResult {
checkNotInMainThread()

val fileName = randomChars()
val fileName = fileName ?: randomChars()
val extension =
contentType?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } ?: ""

Expand All @@ -145,6 +145,7 @@ class BlossomUploader(

authUploadHeader(
hash,
length.toLong(),
alt?.let { "Uploading $it" } ?: "Uploading $fileName",
)?.let {
requestBuilder.addHeader("Authorization", it)
Expand Down Expand Up @@ -226,11 +227,12 @@ class BlossomUploader(

suspend fun authUploadHeader(
hash: String,
size: Long,
alt: String,
): String? {
val myAccount = account ?: return null
return tryAndWait { continuation ->
myAccount.createBlossomUploadAuth(hash, alt) {
myAccount.createBlossomUploadAuth(hash, size, alt) {
val encodedNIP98Event = Base64.getEncoder().encodeToString(it.toJson().toByteArray())
continuation.resume("Nostr $encodedNIP98Event")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,34 +43,36 @@ class BlossomAuthorizationEvent(
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
onReady: (BlossomAuthorizationEvent) -> Unit,
) = createAuth("get", hash, alt, signer, createdAt, onReady)
) = createAuth("get", hash, null, alt, signer, createdAt, onReady)

fun createListAuth(
signer: NostrSigner,
alt: String,
createdAt: Long = TimeUtils.now(),
onReady: (BlossomAuthorizationEvent) -> Unit,
) = createAuth("list", null, alt, signer, createdAt, onReady)
) = createAuth("list", null, null, alt, signer, createdAt, onReady)

fun createDeleteAuth(
hash: HexKey,
alt: String,
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
onReady: (BlossomAuthorizationEvent) -> Unit,
) = createAuth("delete", hash, alt, signer, createdAt, onReady)
) = createAuth("delete", hash, null, alt, signer, createdAt, onReady)

fun createUploadAuth(
hash: HexKey,
size: Long,
alt: String,
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
onReady: (BlossomAuthorizationEvent) -> Unit,
) = createAuth("upload", hash, alt, signer, createdAt, onReady)
) = createAuth("upload", hash, size, alt, signer, createdAt, onReady)

private fun createAuth(
type: String,
hash: HexKey?,
fileSize: Long?,
alt: String,
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
Expand All @@ -80,6 +82,7 @@ class BlossomAuthorizationEvent(
listOfNotNull(
arrayOf("t", type),
arrayOf("expiration", TimeUtils.oneHourAhead().toString()),
fileSize?.let { arrayOf("size", it.toString()) },
hash?.let { arrayOf("x", it) },
)

Expand Down

0 comments on commit 869deba

Please sign in to comment.