init: 还在开发。

This commit is contained in:
2024-01-04 08:48:53 +08:00
commit f5cb9e5a0d
12 changed files with 472 additions and 0 deletions

View File

@ -0,0 +1,7 @@
package net.lamgc.scext.onedrive_transfer
data class ExtensionConfig(
val clientId: String,
val clientSecret: String,
val authUrl: String?
)

View File

@ -0,0 +1,12 @@
package net.lamgc.scext.onedrive_transfer
import net.lamgc.scalabot.extension.BotExtensionFactory
import org.telegram.abilitybots.api.bot.BaseAbilityBot
import org.telegram.abilitybots.api.util.AbilityExtension
import java.io.File
class ExtensionFactory : BotExtensionFactory {
override fun createExtensionInstance(bot: BaseAbilityBot, dataFolder: File): AbilityExtension {
return OneDriveTransferExtension(bot, dataFolder)
}
}

View File

@ -0,0 +1,44 @@
package net.lamgc.scext.onedrive_transfer
import com.azure.identity.AuthorizationCodeCredentialBuilder
import com.google.gson.Gson
import org.telegram.abilitybots.api.bot.BaseAbilityBot
import org.telegram.abilitybots.api.objects.Ability
import org.telegram.abilitybots.api.objects.Locality
import org.telegram.abilitybots.api.objects.Privacy
import org.telegram.abilitybots.api.util.AbilityExtension
import java.io.File
class OneDriveTransferExtension(val bot: BaseAbilityBot, val dataFolder: File) : AbilityExtension {
private val config: ExtensionConfig
init {
val configFile = File(dataFolder, "config.json")
if (!configFile.exists()) {
configFile.createNewFile()
configFile.writeText("{}")
}
config = Gson().fromJson(configFile.reader(), ExtensionConfig::class.java)
val credentialBuilder = AuthorizationCodeCredentialBuilder()
.clientId(config.clientId)
.clientSecret(config.clientSecret)
.redirectUrl("http://localhost:8080")
.build()
}
fun loginOneDrive(): Ability {
return Ability
.builder()
.name("odt_login")
.info("登录 OneDrive 账户.")
.locality(Locality.USER)
.privacy(Privacy.PUBLIC)
.action { ctx ->
}
.build()
}
}

View File

@ -0,0 +1 @@
net.lamgc.scext.onedrive_transfer.ExtensionFactory