Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
interface MatrixClient
Link copied to clipboard
data class MatrixClientConfiguration(var name: String? = null, var storeTimelineEventContentUnencrypted: Boolean = true, var setOwnMessagesAsFullyRead: Boolean = false, var autoJoinUpgradedRooms: Boolean = true, var deleteRoomsOnLeave: Boolean = true, var deleteSentOutboxMessageDelay: Duration = 10.seconds, var cacheExpireDurations: MatrixClientConfiguration.CacheExpireDurations = CacheExpireDurations.default(1.minutes), var syncLoopTimeout: Duration = 30.seconds, var syncLoopDelays: MatrixClientConfiguration.SyncLoopDelays = SyncLoopDelays.default(), var lastRelevantEventFilter: (ClientEvent.RoomEvent<*>) -> Boolean = { it is RoomEvent.MessageEvent<*> }, var syncFilter: Filters = Filters(), var syncOnceFilter: Filters = Filters(presence = Filters.EventFilter(limit = 0)), var httpClientFactory: (config: HttpClientConfig<*>.() -> Unit) -> HttpClient = defaultTrixnityHttpClientFactory(), var modules: List<Module> = createDefaultTrixnityModules())
Link copied to clipboard
Properties
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Use this module, if you want to create a bot with basic functionality. You don't have access to some data usually provided by Trixnity (for example RoomUser or TimelineEvent).
Link copied to clipboard
inline fun <K, V> Flow<Map<K, Flow<V?>>>.flattenValues(throttle: Duration = 200.milliseconds): Flow<List<V>>
A change of the outer flow results in new collect of the inner flows. Because this is an expensive operation, the outer flow is throttled by default.
fun Flow<Map<RoomId, Flow<Room?>>>.flattenValues(throttle: Duration = 200.milliseconds, filterUpgradedRooms: Boolean = true): Flow<Set<Room>>
This collects all rooms, so when one changes, a new set gets emitted. A change of the outer flow results in new collect of the inner flows. Because this is an expensive operation, the outer flow is throttled by default.
Link copied to clipboard
suspend fun MatrixClient.Companion.fromStore(repositoriesModule: Module, mediaStore: MediaStore, onSoftLogin: suspend () -> MatrixClient.SoftLoginInfo? = null, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient?>
Link copied to clipboard
suspend fun MatrixClient.Companion.login(baseUrl: Url, identifier: IdentifierType? = null, password: String? = null, token: String? = null, loginType: LoginType = LoginType.Password, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModuleFactory: suspend (MatrixClient.LoginInfo) -> Module, mediaStoreFactory: suspend (MatrixClient.LoginInfo) -> MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
suspend fun MatrixClient.Companion.login(baseUrl: Url, identifier: IdentifierType? = null, password: String? = null, token: String? = null, loginType: LoginType = LoginType.Password, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModule: Module, mediaStore: MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
Link copied to clipboard
suspend fun MatrixClient.Companion.loginWith(baseUrl: Url, repositoriesModuleFactory: suspend (MatrixClient.LoginInfo) -> Module, mediaStoreFactory: suspend (MatrixClient.LoginInfo) -> MediaStore, getLoginInfo: suspend (MatrixClientServerApiClient) -> Result<MatrixClient.LoginInfo>, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
suspend fun MatrixClient.Companion.loginWith(baseUrl: Url, repositoriesModule: Module, mediaStore: MediaStore, getLoginInfo: suspend (MatrixClientServerApiClient) -> Result<MatrixClient.LoginInfo>, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
Link copied to clipboard
suspend fun MatrixClient.Companion.loginWithPassword(baseUrl: Url, identifier: IdentifierType? = null, password: String, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModuleFactory: suspend (MatrixClient.LoginInfo) -> Module, mediaStoreFactory: suspend (MatrixClient.LoginInfo) -> MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
suspend fun MatrixClient.Companion.loginWithPassword(baseUrl: Url, identifier: IdentifierType? = null, password: String, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModule: Module, mediaStore: MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
Link copied to clipboard
suspend fun MatrixClient.Companion.loginWithToken(baseUrl: Url, identifier: IdentifierType? = null, token: String, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModuleFactory: suspend (MatrixClient.LoginInfo) -> Module, mediaStoreFactory: suspend (MatrixClient.LoginInfo) -> MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
suspend fun MatrixClient.Companion.loginWithToken(baseUrl: Url, identifier: IdentifierType? = null, token: String, deviceId: String? = null, initialDeviceDisplayName: String? = null, repositoriesModule: Module, mediaStore: MediaStore, configuration: MatrixClientConfiguration.() -> Unit = {}): Result<MatrixClient>
Link copied to clipboard
suspend fun Url.serverDiscovery(httpClientFactory: (config: HttpClientConfig<*>.() -> Unit) -> HttpClient = defaultTrixnityHttpClientFactory()): Result<Url>
suspend fun String.serverDiscovery(httpClientFactory: (config: HttpClientConfig<*>.() -> Unit) -> HttpClient = defaultTrixnityHttpClientFactory()): Result<Url>
suspend fun UserId.serverDiscovery(httpClientFactory: (config: HttpClientConfig<*>.() -> Unit) -> HttpClient = defaultTrixnityHttpClientFactory()): Result<Url>