From 0ac7cb63f17a2be64e8d38525bcaf09cd67738af Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 8 Jan 2021 09:25:51 +0800 Subject: [PATCH] [Review] FileCacheStrategy --- mirai-core-api/src/commonMain/kotlin/IMirai.kt | 7 +++---- .../kotlin/utils/FileCacheStrategy.kt | 17 ++++++++++------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/mirai-core-api/src/commonMain/kotlin/IMirai.kt b/mirai-core-api/src/commonMain/kotlin/IMirai.kt index 1ee4bd431..151fe8412 100644 --- a/mirai-core-api/src/commonMain/kotlin/IMirai.kt +++ b/mirai-core-api/src/commonMain/kotlin/IMirai.kt @@ -41,19 +41,18 @@ public val Mirai: IMirai by lazy { findMiraiInstance() } */ public interface IMirai : LowLevelApiAccessor { /** - * 此 API 不稳定. 请优先使用 [BotFactory.INSTANCE] + * 请优先使用 [BotFactory.INSTANCE] * * @see BotFactory.INSTANCE */ + @MiraiInternalApi @Suppress("PropertyName") - @MiraiExperimentalApi public val BotFactory: BotFactory /** - * Mirai 全局使用的 [FileCacheStrategy]. + * Mirai 全局使用的 [FileCacheStrategy]. 覆盖后将会立即应用到全局. */ @Suppress("PropertyName") - @MiraiExperimentalApi public var FileCacheStrategy: FileCacheStrategy @Suppress("PropertyName") diff --git a/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt b/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt index 024f5c920..9113145a1 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt @@ -1,5 +1,5 @@ /* - * Copyright 2019-2020 Mamoe Technologies and contributors. + * Copyright 2019-2021 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. @@ -7,11 +7,15 @@ * https://github.com/mamoe/mirai/blob/master/LICENSE */ +@file:Suppress("unused", "MemberVisibilityCanBePrivate") + package net.mamoe.mirai.utils import kotlinx.coroutines.Dispatchers import net.mamoe.mirai.IMirai +import net.mamoe.mirai.utils.ExternalResource.Companion.sendAsImageTo import net.mamoe.mirai.utils.ExternalResource.Companion.toExternalResource +import net.mamoe.mirai.utils.ExternalResource.Companion.uploadAsImage import java.io.File import java.io.IOException import java.io.InputStream @@ -21,12 +25,12 @@ import java.io.InputStream * * 由于上传资源时服务器要求提前给出 MD5 和文件大小等数据, 一些资源如 [InputStream] 需要首先缓存才能使用. * - * Mirai 全局都使用 [IMirai.FileCacheStrategy]. + * Mirai 全局都使用 [IMirai.FileCacheStrategy]. 可以覆盖. * * ### 使用 [FileCacheStrategy] 的操作 * [ExternalResource.toExternalResource], - * [InputStream.uploadAsImage], - * [InputStream.sendAsImageTo] + * [ExternalResource.uploadAsImage], + * [ExternalResource.sendAsImageTo] * * @see ExternalResource */ @@ -66,12 +70,11 @@ public interface FileCacheStrategy { /** * 使用系统临时文件夹缓存图片文件. 在图片使用完毕后删除临时文件. */ - @MiraiExperimentalApi public class TempCache @JvmOverloads constructor( /** - * 缓存图片存放位置. 为 `null` 时使用主机系统的临时文件夹 + * 缓存图片存放位置. 为 `null` 时使用主机系统的临时文件夹: `File.createTempFile("tmp", null, directory)` */ - public val directory: File? = null + public val directory: File? = null, ) : FileCacheStrategy { private fun createTempFile(): File { return File.createTempFile("tmp", null, directory)