init: 还在开发。
This commit is contained in:
7
src/main/kotlin/ExtensionConfig.kt
Normal file
7
src/main/kotlin/ExtensionConfig.kt
Normal file
@ -0,0 +1,7 @@
|
||||
package net.lamgc.scext.onedrive_transfer
|
||||
|
||||
data class ExtensionConfig(
|
||||
val clientId: String,
|
||||
val clientSecret: String,
|
||||
val authUrl: String?
|
||||
)
|
12
src/main/kotlin/ExtensionFactory.kt
Normal file
12
src/main/kotlin/ExtensionFactory.kt
Normal 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)
|
||||
}
|
||||
}
|
44
src/main/kotlin/OneDriveTransferExtension.kt
Normal file
44
src/main/kotlin/OneDriveTransferExtension.kt
Normal 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()
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
net.lamgc.scext.onedrive_transfer.ExtensionFactory
|
Reference in New Issue
Block a user