mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: Sofitu pa unviar ficheros con nomes personalizaos
This commit is contained in:
parent
0fb2eeb2d8
commit
08bce05c66
@ -15,6 +15,7 @@ import moe.fuqiuluo.shamrock.utils.MD5
|
|||||||
internal object DownloadFile: IActionHandler() {
|
internal object DownloadFile: IActionHandler() {
|
||||||
override suspend fun internalHandle(session: ActionSession): String {
|
override suspend fun internalHandle(session: ActionSession): String {
|
||||||
val url = session.getStringOrNull("url")
|
val url = session.getStringOrNull("url")
|
||||||
|
val name = session.getStringOrNull("name")
|
||||||
val b64 = session.getStringOrNull("base64")
|
val b64 = session.getStringOrNull("base64")
|
||||||
val threadCnt = session.getIntOrNull("thread_cnt") ?: 3
|
val threadCnt = session.getIntOrNull("thread_cnt") ?: 3
|
||||||
val headers = if (session.has("headers")) (if (session.isArray("headers")) {
|
val headers = if (session.has("headers")) (if (session.isArray("headers")) {
|
||||||
@ -24,7 +25,7 @@ internal object DownloadFile: IActionHandler() {
|
|||||||
} else {
|
} else {
|
||||||
session.getString("headers").split("\r\n")
|
session.getString("headers").split("\r\n")
|
||||||
}) else emptyList()
|
}) else emptyList()
|
||||||
return invoke(url, b64, threadCnt, headers, session.echo)
|
return invoke(url, b64, threadCnt, headers, name, session.echo)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend operator fun invoke(
|
suspend operator fun invoke(
|
||||||
@ -32,6 +33,7 @@ internal object DownloadFile: IActionHandler() {
|
|||||||
base64: String?,
|
base64: String?,
|
||||||
threadCnt: Int,
|
threadCnt: Int,
|
||||||
headers: List<String>,
|
headers: List<String>,
|
||||||
|
name: String?,
|
||||||
echo: JsonElement = EmptyJsonString
|
echo: JsonElement = EmptyJsonString
|
||||||
): String {
|
): String {
|
||||||
if (url != null) {
|
if (url != null) {
|
||||||
@ -47,7 +49,7 @@ internal object DownloadFile: IActionHandler() {
|
|||||||
}
|
}
|
||||||
return invoke(url, threadCnt, headerMap, echo)
|
return invoke(url, threadCnt, headerMap, echo)
|
||||||
} else if (base64 != null) {
|
} else if (base64 != null) {
|
||||||
return invoke(base64, echo)
|
return invoke(base64, name, echo)
|
||||||
} else {
|
} else {
|
||||||
return noParam("url/base64", echo)
|
return noParam("url/base64", echo)
|
||||||
}
|
}
|
||||||
@ -55,6 +57,7 @@ internal object DownloadFile: IActionHandler() {
|
|||||||
|
|
||||||
operator fun invoke(
|
operator fun invoke(
|
||||||
base64: String,
|
base64: String,
|
||||||
|
name: String?,
|
||||||
echo: JsonElement
|
echo: JsonElement
|
||||||
): String {
|
): String {
|
||||||
kotlin.runCatching {
|
kotlin.runCatching {
|
||||||
@ -63,7 +66,12 @@ internal object DownloadFile: IActionHandler() {
|
|||||||
it.writeBytes(bytes)
|
it.writeBytes(bytes)
|
||||||
}
|
}
|
||||||
}.onSuccess {
|
}.onSuccess {
|
||||||
val tmp = FileUtils.renameByMd5(it)
|
val tmp = if (name == null)
|
||||||
|
FileUtils.renameByMd5(it)
|
||||||
|
else it.parentFile!!.resolve(name).also { target ->
|
||||||
|
it.renameTo(target)
|
||||||
|
it.delete()
|
||||||
|
}
|
||||||
return ok(data = DownloadResult(
|
return ok(data = DownloadResult(
|
||||||
file = tmp.absolutePath,
|
file = tmp.absolutePath,
|
||||||
md5 = MD5.genFileMd5Hex(tmp.absolutePath)
|
md5 = MD5.genFileMd5Hex(tmp.absolutePath)
|
||||||
|
@ -43,9 +43,10 @@ fun Routing.otherAction() {
|
|||||||
getOrPost("/download_file") {
|
getOrPost("/download_file") {
|
||||||
val url = fetchOrNull("url")
|
val url = fetchOrNull("url")
|
||||||
val b64 = fetchOrNull("base64")
|
val b64 = fetchOrNull("base64")
|
||||||
|
val name = fetchOrNull("name")
|
||||||
val threadCnt = fetchOrNull("thread_cnt")?.toInt() ?: 0
|
val threadCnt = fetchOrNull("thread_cnt")?.toInt() ?: 0
|
||||||
val headers = fetchOrNull("headers") ?: ""
|
val headers = fetchOrNull("headers") ?: ""
|
||||||
call.respondText(DownloadFile(url, b64, threadCnt, headers.split("\r\n")))
|
call.respondText(DownloadFile(url, b64, threadCnt, headers.split("\r\n"), name))
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/upload_file") {
|
post("/upload_file") {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user