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")