From 095394ce627462b26dcadd47e32949f8aeec38d7 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 11 Jan 2024 23:25:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=9D=E8=AF=95=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E4=B8=8A=E4=BC=A0=E4=B8=8D=E4=BA=86=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/OneDriveTransferCenter.kt | 4 +-- src/main/kotlin/OneDriveTransferExtension.kt | 31 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/OneDriveTransferCenter.kt b/src/main/kotlin/OneDriveTransferCenter.kt index 905cc5c..9037509 100644 --- a/src/main/kotlin/OneDriveTransferCenter.kt +++ b/src/main/kotlin/OneDriveTransferCenter.kt @@ -26,7 +26,7 @@ import java.util.concurrent.* object OneDriveTransferCenter { private val executor = - OneDriveTransferTaskExecutor(2, DefaultOneDriveTransferCallback, ArrayBlockingQueue(100)) + OneDriveTransferTaskExecutor(1, DefaultOneDriveTransferCallback, ArrayBlockingQueue(100)) fun submitUploadTask(task: OneDriveTransferTask) { executor.submitTransferTask(task) @@ -197,7 +197,7 @@ class OneDriveTransferTaskExecutor( threadNum: Int, private val callback: OneDriveTransferCallback, private val taskQueue: BlockingQueue, - private val chunkSize: Int = MAX_CHUNK_SIZE + private val chunkSize: Int = 96 ) : ThreadPoolExecutor( threadNum, threadNum, 0, TimeUnit.SECONDS, ArrayBlockingQueue(50), diff --git a/src/main/kotlin/OneDriveTransferExtension.kt b/src/main/kotlin/OneDriveTransferExtension.kt index 98ca8a5..99e5b7b 100644 --- a/src/main/kotlin/OneDriveTransferExtension.kt +++ b/src/main/kotlin/OneDriveTransferExtension.kt @@ -57,6 +57,37 @@ class OneDriveTransferExtension(val bot: BaseAbilityBot, val dataFolder: File) : return objectMapper.readValue(configFile, ExtensionConfig::class.java) } + fun startToUsage(): Ability = Ability.builder() + .named("start") + .info("查看 OneDrive Transfer 的帮助信息.") + .privacy(Privacy.PUBLIC) + .locality(Locality.USER) + .action { + it.bot().silent().send( + """ + OneDrive Transfer 是一个 Telegram 机器人, + 可以将 Telegram 中的文件上传到 OneDrive 中转。 + + /login 登录 OneDrive 账户 + /logout 登出 OneDrive 账户。 + /my 查看当前 OneDrive 账户信息。 + /select_drive 选择 OneDrive 驱动器。 + /set_path 设置 OneDrive 中转路径。 + /cancel 取消当前操作(仅限 set_path 命令)。 + /start 查看帮助信息。 + + -------------------------------------------- + 基本用法: + 1. 先使用 /login 命令,按照提示登录要存储文件的 OneDrive 账户。 + 2. 登录完成后执行 /select_drive 选择 OneDrive 驱动器; + 3. 选好后直接转发文件给机器人就好,机器人会自动上传到 OneDrive 中转。 + + 文件默认保存在 "Telegram Files/",如果需要修改可以使用 /set_path 命令。 + """.trimIndent(), it.chatId() + ) + } + .build() + fun loginOneDrive(): Ability = Ability .builder() .named("login")