feat: 添加新的回调以提醒用户已经加入队列.
This commit is contained in:
parent
98e256f4db
commit
ba5566b594
@ -25,7 +25,8 @@ import java.util.concurrent.*
|
|||||||
|
|
||||||
object OneDriveTransferCenter {
|
object OneDriveTransferCenter {
|
||||||
|
|
||||||
private val executor = OneDriveTransferTaskExecutor(5, DefaultOneDriveTransferCallback, ArrayBlockingQueue<OneDriveTransferTask>(100))
|
private val executor =
|
||||||
|
OneDriveTransferTaskExecutor(2, DefaultOneDriveTransferCallback, ArrayBlockingQueue<OneDriveTransferTask>(100))
|
||||||
|
|
||||||
fun submitUploadTask(task: OneDriveTransferTask) {
|
fun submitUploadTask(task: OneDriveTransferTask) {
|
||||||
executor.submitTransferTask(task)
|
executor.submitTransferTask(task)
|
||||||
@ -34,21 +35,37 @@ object OneDriveTransferCenter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object DefaultOneDriveTransferCallback : OneDriveTransferCallback {
|
object DefaultOneDriveTransferCallback : OneDriveTransferCallback {
|
||||||
override fun onTransferStart(progress: OneDriveTransferWorkerProgress) {
|
override fun onTransferTaskCreated(task: OneDriveTransferTask) {
|
||||||
val message = progress.currentTask.bot.execute(
|
val message = task.bot.execute(
|
||||||
SendMessage.builder()
|
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(
|
.text(
|
||||||
"""
|
"""
|
||||||
OneDrive 中转任务开始执行
|
OneDrive 中转任务开始执行
|
||||||
正在获取文件信息...
|
正在获取文件信息...(需要一些时间从 Telegram 服务器下载文件)
|
||||||
文件名: ${progress.currentTask.document.fileName}
|
文件名: ${progress.currentTask.document.fileName}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
.chatId(progress.currentTask.extra["chatId"].toString().toLong())
|
|
||||||
.replyToMessageId(progress.currentTask.extra["messageId"].toString().toInt())
|
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
progress.currentTask.extra["messageId"] = message.messageId
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onProgress(progress: OneDriveTransferWorkerProgress) {
|
override fun onProgress(progress: OneDriveTransferWorkerProgress) {
|
||||||
@ -90,6 +107,7 @@ object DefaultOneDriveTransferCallback : OneDriveTransferCallback {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface OneDriveTransferCallback {
|
interface OneDriveTransferCallback {
|
||||||
|
fun onTransferTaskCreated(task: OneDriveTransferTask)
|
||||||
fun onTransferStart(progress: OneDriveTransferWorkerProgress)
|
fun onTransferStart(progress: OneDriveTransferWorkerProgress)
|
||||||
fun onProgress(progress: OneDriveTransferWorkerProgress)
|
fun onProgress(progress: OneDriveTransferWorkerProgress)
|
||||||
fun onTransferFailure(task: OneDriveTransferTask, progress: OneDriveTransferWorkerProgress)
|
fun onTransferFailure(task: OneDriveTransferTask, progress: OneDriveTransferWorkerProgress)
|
||||||
@ -120,6 +138,7 @@ class OneDriveTransferTaskExecutor(
|
|||||||
|
|
||||||
fun submitTransferTask(task: OneDriveTransferTask) {
|
fun submitTransferTask(task: OneDriveTransferTask) {
|
||||||
taskQueue.offer(task)
|
taskQueue.offer(task)
|
||||||
|
callback.onTransferTaskCreated(task)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createWorker(id: Int): Runnable = Runnable {
|
private fun createWorker(id: Int): Runnable = Runnable {
|
||||||
|
Loading…
Reference in New Issue
Block a user