This library is a Bluesky/ATProtocol client library compatible with Kotlin Multiplatform. It depends on khttpclient and internally uses Ktor Client. Therefore, this library is available on platforms supported by Kotlin Multiplatform and Ktor Client. The behavior on each platform depends on khttpclient.
The following is how to use Gradle with Kotlin on supported platforms. For Apple platform, please refer to kbsky-cocoapods. Also, please check the test code as well.
repositories {
mavenCentral()
}
dependencies {
+ implementation("work.socialhub.kbsky:core:0.1.0")
+ implementation("work.socialhub.kbsky:stream:0.1.0")
}
repositories {
+ maven { url = uri("https://repo.repsy.io/mvn/uakihir0/public") }
}
dependencies {
+ implementation("work.socialhub.kbsky:core:0.2.0-SNAPSHOT")
+ implementation("work.socialhub.kbsky:stream:0.2.0-SNAPSHOT")
}
val response = BlueskyFactory
.instance(BSKY_SOCIAL.uri)
.server()
.createSession(
ServerCreateSessionRequest().also {
it.identifier = HANDLE
it.password = PASSWORD
}
)
println(response.data.accessJwt)
BlueskyFactory
.instance(BSKY_SOCIAL.uri)
.feed()
.post(
FeedPostRequest(accessJwt).also {
it.text = "Hello World!"
}
)
val response = PLCDirectoryFactory
.instance()
.DIDDetails(did)
println(checkNotNull(response.data.alsoKnownAs)[0])
val stream = ATProtocolStreamFactory
.instance(
apiUri = BSKY_SOCIAL.uri,
streamUri = BSKY_NETWORK.uri
)
.sync()
.subscribeRepos(
SyncSubscribeReposRequest().also {
it.filter = listOf(
"app.bsky.feed.post"
)
}
)
stream.eventCallback(
object : EventCallback {
override fun onEvent(
cid: String?,
uri: String?,
record: RecordUnion
) {
print(record)
}
})
MIT License