feat: 添加新的回调以提醒用户已经加入队列.

This commit is contained in:
LamGC 2024-01-11 01:52:02 +08:00
parent 98e256f4db
commit ba5566b594
Signed by: LamGC
GPG Key ID: 6C5AE2A913941E1D

View File

@ -25,7 +25,8 @@ import java.util.concurrent.*
object OneDriveTransferCenter {
private val executor = OneDriveTransferTaskExecutor(5, DefaultOneDriveTransferCallback, ArrayBlockingQueue<OneDriveTransferTask>(100))
private val executor =
OneDriveTransferTaskExecutor(2, DefaultOneDriveTransferCallback, ArrayBlockingQueue<OneDriveTransferTask>(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 {