chore!: migrate to version 2.x

This commit is contained in:
hstyi
2025-06-13 15:16:56 +08:00
committed by GitHub
parent ca484618c7
commit 6177bbdc68
444 changed files with 18594 additions and 3832 deletions

View File

@@ -0,0 +1,16 @@
plugins {
alias(libs.plugins.kotlin.jvm)
}
project.version = "0.0.1"
dependencies {
testImplementation(kotlin("test"))
implementation("com.huaweicloud:esdk-obs-java-bundle:3.25.4")
compileOnly(project(":"))
}
apply(from = "$rootDir/plugins/common.gradle.kts")

View File

@@ -0,0 +1,41 @@
package app.termora.plugins.obs
import org.apache.commons.vfs2.Capability
import org.apache.commons.vfs2.FileName
import org.apache.commons.vfs2.FileSystem
import org.apache.commons.vfs2.FileSystemOptions
import org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider
class OBSFileProvider private constructor() : AbstractOriginatingFileProvider() {
companion object {
val instance by lazy { OBSFileProvider() }
val capabilities = listOf(
Capability.CREATE,
Capability.DELETE,
Capability.RENAME,
Capability.GET_TYPE,
Capability.LIST_CHILDREN,
Capability.READ_CONTENT,
Capability.URI,
Capability.WRITE_CONTENT,
Capability.GET_LAST_MODIFIED,
Capability.SET_LAST_MODIFIED_FILE,
Capability.RANDOM_ACCESS_READ,
Capability.APPEND_CONTENT
)
}
override fun getCapabilities(): Collection<Capability> {
return OBSFileProvider.capabilities
}
override fun doCreateFileSystem(
rootFileName: FileName,
fileSystemOptions: FileSystemOptions
): FileSystem? {
TODO("Not yet implemented")
}
}

View File

@@ -0,0 +1,35 @@
package app.termora.plugins.obs
import app.termora.DynamicIcon
import app.termora.I18n
import app.termora.Icons
import app.termora.plugin.Extension
import app.termora.plugin.ExtensionSupport
import app.termora.plugin.PaidPlugin
import app.termora.protocol.ProtocolHostPanelExtension
import app.termora.protocol.ProtocolProviderExtension
class OBSPlugin : PaidPlugin {
private val support = ExtensionSupport()
init {
support.addExtension(ProtocolProviderExtension::class.java) { OBSProtocolProviderExtension.instance }
support.addExtension(ProtocolHostPanelExtension::class.java) { OBSProtocolHostPanelExtension.instance }
}
override fun getAuthor(): String {
return "TermoraDev"
}
override fun getName(): String {
return "Huawei OBS"
}
override fun <T : Extension> getExtensions(clazz: Class<T>): List<T> {
return support.getExtensions(clazz)
}
}

View File

@@ -0,0 +1,22 @@
package app.termora.plugins.obs
import app.termora.Host
import app.termora.protocol.ProtocolHostPanel
import org.apache.commons.lang3.StringUtils
class OBSProtocolHostPanel : ProtocolHostPanel() {
override fun getHost(): Host {
return Host(
name = StringUtils.EMPTY,
protocol = OBSProtocolProvider.PROTOCOL
)
}
override fun setHost(host: Host) {
}
override fun validateFields(): Boolean {
return true
}
}

View File

@@ -0,0 +1,19 @@
package app.termora.plugins.obs
import app.termora.protocol.ProtocolHostPanel
import app.termora.protocol.ProtocolHostPanelExtension
import app.termora.protocol.ProtocolProvider
class OBSProtocolHostPanelExtension private constructor() : ProtocolHostPanelExtension {
companion object {
val instance by lazy { OBSProtocolHostPanelExtension() }
}
override fun getProtocolProvider(): ProtocolProvider {
return OBSProtocolProvider.instance
}
override fun createProtocolHostPanel(): ProtocolHostPanel {
return OBSProtocolHostPanel()
}
}

View File

@@ -0,0 +1,33 @@
package app.termora.plugins.obs
import app.termora.DynamicIcon
import app.termora.Icons
import app.termora.protocol.FileObjectHandler
import app.termora.protocol.FileObjectRequest
import app.termora.protocol.TransferProtocolProvider
import org.apache.commons.vfs2.provider.FileProvider
class OBSProtocolProvider private constructor() : TransferProtocolProvider {
companion object {
val instance by lazy { OBSProtocolProvider() }
const val PROTOCOL = "OBS"
}
override fun getProtocol(): String {
return PROTOCOL
}
override fun getIcon(width: Int, height: Int): DynamicIcon {
return Icons.huawei
}
override fun getFileProvider(): FileProvider {
return OBSFileProvider.instance
}
override fun getRootFileObject(requester: FileObjectRequest): FileObjectHandler {
TODO("Not yet implemented")
}
}

View File

@@ -0,0 +1,14 @@
package app.termora.plugins.obs
import app.termora.protocol.ProtocolProvider
import app.termora.protocol.ProtocolProviderExtension
class OBSProtocolProviderExtension private constructor() : ProtocolProviderExtension {
companion object {
val instance by lazy { OBSProtocolProviderExtension() }
}
override fun getProtocolProvider(): ProtocolProvider {
return OBSProtocolProvider.Companion.instance
}
}

View File

@@ -0,0 +1,24 @@
<termora-plugin>
<id>obs</id>
<name>Huawei OBS</name>
<paid/>
<version>${projectVersion}</version>
<termora-version since=">=${rootProjectVersion}" until=""/>
<entry>app.termora.plugins.obs.OBSPlugin</entry>
<descriptions>
<description>Connecting to Huawei OBS</description>
<description language="zh_CN">支持连接到华为云对象存储</description>
<description language="zh_TW">支援連接到華為雲端物件存儲</description>
</descriptions>
<vendor url="https://github.com/TermoraDev">TermoraDev</vendor>
</termora-plugin>

View File

@@ -0,0 +1 @@
<svg t="1747212780529" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1350" width="16" height="16"><path d="M843.5 91.90625H180.59375c-48.65625 0-88.40625 39.75-88.40625 88.40625v662.90625c0 48.65625 39.75 88.40625 88.40625 88.40625h662.90625c48.65625 0 88.40625-39.75 88.40625-88.40625V180.21875c0-48.5625-39.75-88.3125-88.40625-88.3125z m-441.5625 636.375c-16.5 11.15625-76.21875 49.6875-114.46875 32.53125-38.34375-17.15625-58.875-60-58.875-60l217.03125-5.8125s-28.3125 21.5625-43.6875 33.28125z m-125.15625-49.78125c-22.3125-3.375-71.0625-16.21875-96-58.125-25.03125-41.90625-12.9375-97.5-9.84375-98.34375 3.09375-0.84375 83.0625 43.78125 121.875 63.28125 38.90625 19.40625 154.875 89.625 155.71875 92.15625 1.125 3-146.625 4.59375-171.75 1.03125z m5.53125-126.9375c-52.875-35.25-71.90625-64.6875-67.78125-108.9375 4.125-44.25 49.5-89.53125 55.875-90.28125 6.28125-0.65625 60.9375 70.40625 103.03125 136.78125 42 66.375 93.46875 157.6875 91.125 163.6875-2.34375 6-129-63.46875-182.25-101.25z m212.34375 80.34375c-0.1875 2.8125-4.125 4.125-7.3125 1.03125-3.28125-3.09375-91.59375-144.1875-108.375-180.09375-16.78125-35.90625-43.3125-105.65625-7.96875-151.21875 35.34375-45.65625 90.65625-43.125 90.65625-43.125 3.5625 5.4375 27.09375 68.8125 35.0625 118.6875 8.0625 49.6875-1.875 251.90625-2.0625 254.71875z m34.78125 0c-0.1875-2.8125-10.125-204.9375-2.15625-254.8125 7.96875-49.875 31.5-113.15625 35.0625-118.6875 0 0 55.3125-2.53125 90.65625 43.125s8.8125 115.3125-7.96875 151.21875C628.25 488.65625 539.9375 629.75 536.65625 632.84375c-3.09375 3.09375-7.03125 1.78125-7.21875-0.9375z m30.1875 21c-2.34375-6 49.03125-97.21875 91.125-163.6875 42-66.375 96.65625-137.53125 103.03125-136.78125 6.28125 0.65625 51.75 45.9375 55.875 90.28125 4.125 44.25-14.90625 73.78125-67.78125 108.9375-53.34375 37.6875-179.90625 107.15625-182.25 101.25z m177.09375 107.90625c-38.34375 17.15625-98.0625-21.375-114.5625-32.53125-15.375-11.71875-43.6875-33.28125-43.6875-33.28125l217.03125 5.8125c0.09375-0.09375-20.53125 42.84375-58.78125 60z m106.59375-140.4375c-25.03125 41.90625-73.6875 54.65625-96 58.125-25.125 3.5625-172.78125 1.96875-171.75-1.03125 0.84375-2.625 116.90625-72.75 155.71875-92.15625 38.8125-19.40625 118.78125-64.125 121.875-63.28125 3.09375 0.9375 15.1875 56.53125-9.84375 98.34375z" fill="#6C707E" p-id="1351"></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<svg t="1747212780529" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1350" width="16" height="16"><path d="M843.5 91.90625H180.59375c-48.65625 0-88.40625 39.75-88.40625 88.40625v662.90625c0 48.65625 39.75 88.40625 88.40625 88.40625h662.90625c48.65625 0 88.40625-39.75 88.40625-88.40625V180.21875c0-48.5625-39.75-88.3125-88.40625-88.3125z m-441.5625 636.375c-16.5 11.15625-76.21875 49.6875-114.46875 32.53125-38.34375-17.15625-58.875-60-58.875-60l217.03125-5.8125s-28.3125 21.5625-43.6875 33.28125z m-125.15625-49.78125c-22.3125-3.375-71.0625-16.21875-96-58.125-25.03125-41.90625-12.9375-97.5-9.84375-98.34375 3.09375-0.84375 83.0625 43.78125 121.875 63.28125 38.90625 19.40625 154.875 89.625 155.71875 92.15625 1.125 3-146.625 4.59375-171.75 1.03125z m5.53125-126.9375c-52.875-35.25-71.90625-64.6875-67.78125-108.9375 4.125-44.25 49.5-89.53125 55.875-90.28125 6.28125-0.65625 60.9375 70.40625 103.03125 136.78125 42 66.375 93.46875 157.6875 91.125 163.6875-2.34375 6-129-63.46875-182.25-101.25z m212.34375 80.34375c-0.1875 2.8125-4.125 4.125-7.3125 1.03125-3.28125-3.09375-91.59375-144.1875-108.375-180.09375-16.78125-35.90625-43.3125-105.65625-7.96875-151.21875 35.34375-45.65625 90.65625-43.125 90.65625-43.125 3.5625 5.4375 27.09375 68.8125 35.0625 118.6875 8.0625 49.6875-1.875 251.90625-2.0625 254.71875z m34.78125 0c-0.1875-2.8125-10.125-204.9375-2.15625-254.8125 7.96875-49.875 31.5-113.15625 35.0625-118.6875 0 0 55.3125-2.53125 90.65625 43.125s8.8125 115.3125-7.96875 151.21875C628.25 488.65625 539.9375 629.75 536.65625 632.84375c-3.09375 3.09375-7.03125 1.78125-7.21875-0.9375z m30.1875 21c-2.34375-6 49.03125-97.21875 91.125-163.6875 42-66.375 96.65625-137.53125 103.03125-136.78125 6.28125 0.65625 51.75 45.9375 55.875 90.28125 4.125 44.25-14.90625 73.78125-67.78125 108.9375-53.34375 37.6875-179.90625 107.15625-182.25 101.25z m177.09375 107.90625c-38.34375 17.15625-98.0625-21.375-114.5625-32.53125-15.375-11.71875-43.6875-33.28125-43.6875-33.28125l217.03125 5.8125c0.09375-0.09375-20.53125 42.84375-58.78125 60z m106.59375-140.4375c-25.03125 41.90625-73.6875 54.65625-96 58.125-25.125 3.5625-172.78125 1.96875-171.75-1.03125 0.84375-2.625 116.90625-72.75 155.71875-92.15625 38.8125-19.40625 118.78125-64.125 121.875-63.28125 3.09375 0.9375 15.1875 56.53125-9.84375 98.34375z" fill="#CED0D6" p-id="1351"></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB