added nostrbuild, can only upload very small files right now
This commit is contained in:
@@ -31,26 +31,31 @@ object ImageUploader {
|
|||||||
checkNotNull(imageInputStream) {
|
checkNotNull(imageInputStream) {
|
||||||
"Can't open the image input stream"
|
"Can't open the image input stream"
|
||||||
}
|
}
|
||||||
|
|
||||||
val myServer = if (server == ServersAvailable.IMGUR) {
|
val myServer = if (server == ServersAvailable.IMGUR) {
|
||||||
ImgurServer()
|
ImgurServer()
|
||||||
} else if (server == ServersAvailable.NOSTRIMG) {
|
} else if (server == ServersAvailable.NOSTRIMG) {
|
||||||
NostrImgServer()
|
NostrImgServer()
|
||||||
|
} else if (server == ServersAvailable.NOSTR_BUILD) {
|
||||||
|
NostrBuildServer()
|
||||||
} else {
|
} else {
|
||||||
ImgurServer()
|
ImgurServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
uploadImage(imageInputStream, contentType, myServer, onSuccess, onError)
|
uploadImage(imageInputStream, contentType, myServer, server, onSuccess, onError)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun uploadImage(
|
fun uploadImage(
|
||||||
inputStream: InputStream,
|
inputStream: InputStream,
|
||||||
contentType: String?,
|
contentType: String?,
|
||||||
server: FileServer,
|
server: FileServer,
|
||||||
|
serverType: ServersAvailable,
|
||||||
onSuccess: (String, String?) -> Unit,
|
onSuccess: (String, String?) -> Unit,
|
||||||
onError: (Throwable) -> Unit
|
onError: (Throwable) -> Unit
|
||||||
) {
|
) {
|
||||||
val category = contentType?.toMediaType()?.toString()?.split("/")?.get(0) ?: "image"
|
var category = "fileToUpload"
|
||||||
|
if (serverType != ServersAvailable.NOSTR_BUILD) {
|
||||||
|
category = contentType?.toMediaType()?.toString()?.split("/")?.get(0) ?: "image"
|
||||||
|
}
|
||||||
val fileName = randomChars()
|
val fileName = randomChars()
|
||||||
val extension = contentType?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } ?: ""
|
val extension = contentType?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } ?: ""
|
||||||
|
|
||||||
@@ -73,16 +78,18 @@ object ImageUploader {
|
|||||||
.build()
|
.build()
|
||||||
|
|
||||||
val requestBuilder = Request.Builder()
|
val requestBuilder = Request.Builder()
|
||||||
|
|
||||||
server.clientID()?.let {
|
server.clientID()?.let {
|
||||||
requestBuilder.header("Authorization", it)
|
requestBuilder.addHeader("Authorization", it)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (serverType == ServersAvailable.NOSTR_BUILD) {
|
||||||
|
requestBuilder.addHeader("Content-Type", "multipart/form-data")
|
||||||
}
|
}
|
||||||
|
|
||||||
requestBuilder
|
requestBuilder
|
||||||
.header("User-Agent", "Amethyst/${BuildConfig.VERSION_NAME}")
|
.addHeader("User-Agent", "Amethyst/${BuildConfig.VERSION_NAME}")
|
||||||
.url(server.postUrl(contentType))
|
.url(server.postUrl(contentType))
|
||||||
.post(requestBody)
|
.post(requestBody)
|
||||||
|
|
||||||
val request = requestBuilder.build()
|
val request = requestBuilder.build()
|
||||||
|
|
||||||
client.newCall(request).enqueue(object : Callback {
|
client.newCall(request).enqueue(object : Callback {
|
||||||
@@ -146,12 +153,11 @@ class ImgurServer : FileServer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class NostrBuildServer : FileServer() {
|
class NostrBuildServer : FileServer() {
|
||||||
override fun postUrl(contentType: String?) = "https://nostr.build/api/upload/amethyst.php"
|
override fun postUrl(contentType: String?) = "https://nostr.build/api/upload/android.php"
|
||||||
|
|
||||||
override fun parseUrlFromSucess(body: String): String? {
|
override fun parseUrlFromSucess(body: String): String? {
|
||||||
val tree = jacksonObjectMapper().readTree(body)
|
val url = jacksonObjectMapper().readTree(body)
|
||||||
val url = tree?.get("data")?.get("link")?.asText()
|
return url.toString().replace("\"", "")
|
||||||
return url
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clientID() = null
|
override fun clientID() = null
|
||||||
|
|||||||
@@ -610,6 +610,7 @@ fun ImageVideoDescription(
|
|||||||
val fileServers = listOf(
|
val fileServers = listOf(
|
||||||
Triple(ServersAvailable.IMGUR, stringResource(id = R.string.upload_server_imgur), stringResource(id = R.string.upload_server_imgur_explainer)),
|
Triple(ServersAvailable.IMGUR, stringResource(id = R.string.upload_server_imgur), stringResource(id = R.string.upload_server_imgur_explainer)),
|
||||||
Triple(ServersAvailable.NOSTRIMG, stringResource(id = R.string.upload_server_nostrimg), stringResource(id = R.string.upload_server_nostrimg_explainer)),
|
Triple(ServersAvailable.NOSTRIMG, stringResource(id = R.string.upload_server_nostrimg), stringResource(id = R.string.upload_server_nostrimg_explainer)),
|
||||||
|
Triple(ServersAvailable.NOSTR_BUILD, stringResource(id = R.string.upload_server_nostrbuild), stringResource(id = R.string.upload_server_nostrbuild_explainer)),
|
||||||
Triple(ServersAvailable.IMGUR_NIP_94, stringResource(id = R.string.upload_server_imgur_nip94), stringResource(id = R.string.upload_server_imgur_nip94_explainer)),
|
Triple(ServersAvailable.IMGUR_NIP_94, stringResource(id = R.string.upload_server_imgur_nip94), stringResource(id = R.string.upload_server_imgur_nip94_explainer)),
|
||||||
Triple(ServersAvailable.NOSTRIMG_NIP_94, stringResource(id = R.string.upload_server_nostrimg_nip94), stringResource(id = R.string.upload_server_nostrimg_nip94_explainer)),
|
Triple(ServersAvailable.NOSTRIMG_NIP_94, stringResource(id = R.string.upload_server_nostrimg_nip94), stringResource(id = R.string.upload_server_nostrimg_nip94_explainer)),
|
||||||
Triple(ServersAvailable.NIP95, stringResource(id = R.string.upload_server_relays_nip95), stringResource(id = R.string.upload_server_relays_nip95_explainer))
|
Triple(ServersAvailable.NIP95, stringResource(id = R.string.upload_server_relays_nip95), stringResource(id = R.string.upload_server_relays_nip95_explainer))
|
||||||
|
|||||||
@@ -333,6 +333,9 @@
|
|||||||
<string name="upload_server_nostrimg">nostrimg.com - less secure</string>
|
<string name="upload_server_nostrimg">nostrimg.com - less secure</string>
|
||||||
<string name="upload_server_nostrimg_explainer">Uploads to NostrImg. NostrImg can change your image at any time</string>
|
<string name="upload_server_nostrimg_explainer">Uploads to NostrImg. NostrImg can change your image at any time</string>
|
||||||
|
|
||||||
|
<string name="upload_server_nostrbuild">nostr.build- less secure</string>
|
||||||
|
<string name="upload_server_nostrbuild_explainer">Uploads to Nostr.build. Nostr.build can change your image at any time</string>
|
||||||
|
|
||||||
<string name="upload_server_imgur_nip94">Verifiable Imgur (NIP-94)</string>
|
<string name="upload_server_imgur_nip94">Verifiable Imgur (NIP-94)</string>
|
||||||
<string name="upload_server_imgur_nip94_explainer">Protects from Imgur changing your image/video after you post</string>
|
<string name="upload_server_imgur_nip94_explainer">Protects from Imgur changing your image/video after you post</string>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user