From ba5566b594568a2faf652885815f2e29797d4d02 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 11 Jan 2024 01:52:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E4=BB=A5=E6=8F=90=E9=86=92=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E5=8A=A0=E5=85=A5=E9=98=9F=E5=88=97.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/OneDriveTransferCenter.kt | 33 ++++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/OneDriveTransferCenter.kt b/src/main/kotlin/OneDriveTransferCenter.kt index 83aaf5b..4b5bcf3 100644 --- a/src/main/kotlin/OneDriveTransferCenter.kt +++ b/src/main/kotlin/OneDriveTransferCenter.kt @@ -25,7 +25,8 @@ import java.util.concurrent.* object OneDriveTransferCenter { - private val executor = OneDriveTransferTaskExecutor(5, DefaultOneDriveTransferCallback, ArrayBlockingQueue(100)) + private val executor = + OneDriveTransferTaskExecutor(2, DefaultOneDriveTransferCallback, ArrayBlockingQueue(100)) fun submitUploadTask(task: OneDriveTransferTask) { executor.submitTransferTask(task) @@ -34,21 +35,37 @@ object OneDriveTransferCenter { } object DefaultOneDriveTransferCallback : OneDriveTransferCallback { - override fun onTransferStart(progress: OneDriveTransferWorkerProgress) { - val message = progress.currentTask.bot.execute( + override fun onTransferTaskCreated(task: OneDriveTransferTask) { + val message = task.bot.execute( SendMessage.builder() + .text( + """ + OneDrive 中转任务已创建 + 正在排队中... + 文件名: ${task.document.fileName} + """.trimIndent() + ) + .chatId(task.extra["chatId"].toString().toLong()) + .replyToMessageId(task.extra["messageId"].toString().toInt()) + .build() + ) + task.extra["messageId"] = message.messageId + } + + override fun onTransferStart(progress: OneDriveTransferWorkerProgress) { + progress.currentTask.bot.execute( + EditMessageText.builder() + .chatId(progress.currentTask.extra["chatId"].toString().toLong()) + .messageId(progress.currentTask.extra["messageId"].toString().toInt()) .text( """ OneDrive 中转任务开始执行 - 正在获取文件信息... + 正在获取文件信息...(需要一些时间从 Telegram 服务器下载文件) 文件名: ${progress.currentTask.document.fileName} """.trimIndent() ) - .chatId(progress.currentTask.extra["chatId"].toString().toLong()) - .replyToMessageId(progress.currentTask.extra["messageId"].toString().toInt()) .build() ) - progress.currentTask.extra["messageId"] = message.messageId } override fun onProgress(progress: OneDriveTransferWorkerProgress) { @@ -90,6 +107,7 @@ object DefaultOneDriveTransferCallback : OneDriveTransferCallback { } interface OneDriveTransferCallback { + fun onTransferTaskCreated(task: OneDriveTransferTask) fun onTransferStart(progress: OneDriveTransferWorkerProgress) fun onProgress(progress: OneDriveTransferWorkerProgress) fun onTransferFailure(task: OneDriveTransferTask, progress: OneDriveTransferWorkerProgress) @@ -120,6 +138,7 @@ class OneDriveTransferTaskExecutor( fun submitTransferTask(task: OneDriveTransferTask) { taskQueue.offer(task) + callback.onTransferTaskCreated(task) } private fun createWorker(id: Int): Runnable = Runnable {