Compare commits

...

5 commits

Author SHA1 Message Date
array-in-a-matrix 40800c8f61 bind RustSdkCryptoStorageProvider 2024-02-07 12:49:28 -05:00
array-in-a-matrix 7619024098 rm cryptoStore it is ICryptoStorageProvider 2024-02-07 12:49:14 -05:00
array-in-a-matrix c71a8203bb add procs for 3 event types 2024-02-07 12:32:39 -05:00
array-in-a-matrix e87652c055 space 2024-02-07 12:32:20 -05:00
array-in-a-matrix 1635454988 note about credentials.nim 2024-02-07 11:59:50 -05:00
6 changed files with 23 additions and 7 deletions

View file

@ -26,8 +26,9 @@ cd nimbotsdk/src/ && pnpm install
### Tests
Procedures that have been tested to work are imported into `src/nimbotsdk.nim`.
Procedures that have been checked to work are imported into `src/nimbotsdk.nim`.
Copy `credentials.nim.example` to `credentials.nim` and add the needed values before running tests.
Run tests:
```sh

View file

@ -1,8 +1,7 @@
# Things here have been tested to work
import nimbotsdk/matrixTypes
export ICryptoStorageProvider, Storage, CryptoStore, Client, Content,
Unsigned, Event, Filter, Appservice
export ICryptoStorageProvider, Storage, Client, Content, Unsigned, Event, Filter, Appservice
import nimbotsdk/MatrixAuth
export newMatrixAuth, passwordLogin
@ -23,4 +22,7 @@ import nimbotsdk/SimpleFsStorageProvider
export newSimpleFsStorageProvider
import nimbotsdk/RichRepliesPreprocessor
export newRichRepliesPreprocessor
export newRichRepliesPreprocessor
import nimbotsdk/RustSdkCryptoStorageProvider
export RustSdkCryptoStorageProvider

View file

@ -1,9 +1,10 @@
{.emit:"import { MatrixClient } from 'matrix-bot-sdk';".}
import matrixTypes
proc newMatrixClient*(homeserver, token: cstring): Client {.importjs: "new MatrixClient(#, #)".}
proc newMatrixClient*(homeserver, token: cstring, storage: Storage): Client {.importjs: "new MatrixClient(#, #, #)".}
proc newMatrixClient*(homeserver, token: cstring, storage: Storage, cryptoStore: CryptoStore): Client {.importjs: "new MatrixClient(#, #, #, #)".}
proc newMatrixClient*(homeserver, token: cstring, storage: Storage, cryptoStore: ICryptoStorageProvider): Client {.importjs: "new MatrixClient(#, #, #, #)".}
proc onRoomMessage*(client: Client, callback: proc(roomId: cstring, event: Event)) {.importjs: "#.on('room.message', #)".}
@ -12,6 +13,13 @@ proc onRoomTopic*(client: Client, callback: proc(roomId: cstring, event: Event))
proc onRoomEvent*(client: Client, callback: proc(roomId: cstring, event: Event)) {.importjs: "#.on('room.event', #)".}
proc onRoomJoin*(client: Client, callback: proc(roomId: cstring, event: Event)) {.importjs: "#.on('room.join', #)".}
proc onRoomLeave*(client: Client, callback: proc(roomId: cstring, event: Event)) {.importjs: "#.on('room.leave', #)".}
proc onAccountData*(client: Client, callback: proc(event: Event)) {.importjs: "#.on('account_data', #)".}
proc onRoomAccountData*(client: Client, callback: proc(roomId: cstring, event: Event)) {.importjs: "#.on('onRoomAccountData', #)".}
# TODO: add more for each event type
proc impersonateUserId*(client: Client, userId: cstring = nil): void {.importjs: "#.impersonateUserId(#)".}

View file

@ -1,4 +1,5 @@
{.emit:"import { RichRepliesPreprocessor } from 'matrix-bot-sdk';".}
import matrixTypes
proc newRichRepliesPreprocessor*(): IPreprocessor {.importjs: "new RichRepliesPreprocessor()".}

View file

@ -0,0 +1,6 @@
{.emit:"import { RustSdkCryptoStorageProvider } from 'matrix-bot-sdk';".}
import matrixTypes
proc newRustSdkCryptoStorageProvider*(storagePath: cstring): ICryptoStorageProvider {.importjs: "new RustSdkCryptoStorageProvider(#)"}
proc newRustSdkCryptoStorageProvider*(storagePath: cstring, storageType: cstring): ICryptoStorageProvider {.importjs: "new RustSdkCryptoStorageProvider(#, #)"}

View file

@ -2,8 +2,6 @@ type ICryptoStorageProvider* = ref object
type Storage* = ref object
type CryptoStore* = ref object
type Client* = ref object
homeserverUrl*: cstring
accessToken*: cstring