NEWS
einfacher Matrix Chat Client
-
Hallo,
ich habe mit Hilfe der "matrix-js-sdk" ein einfaches Typescript erstellt was Nachrichten in einen Raum
innerhalb des matrix.org Netzwerk schickennamespace matrixClient { const matrixJsSdk = require('matrix-js-sdk') const configPrefix:string = '0_userdata.0.matrix' const serverUrl:string = getState(configPrefix + 'Url'/*matrixUrl*/).val const testRoomId:string = getState(configPrefix + 'Room'/*matrixRoom*/).val const loginData:object = JSON.parse(getState(configPrefix + 'Login'/*matrixLogin*/).val) const matrixMessage: string = 'matrixMessage' const eventType:string = 'm.room.message' const messageType:string = 'm.text' const matrixClient = matrixJsSdk.createClient(serverUrl) const eventReceiverCallback = function(event, room, toStartOfTimeline):void { if (event.getType() != eventType && event.getRoomId() != testRoomId && event.getContent().msgtype != messageType) { return; } log(event.getContent().body) } const sendMessageToMatrix = function (data: string): any { const content: object = { "msgtype": messageType, "body": data } matrixClient.sendEvent(testRoomId, eventType, content, "").then((res) => { }).catch((err) => { log(err) }) return(Date.now()) } onStop(() => { onMessageUnregister(matrixMessage) matrixClient.stopClient() matrixClient.logout() }) matrixClient.login("m.login.password", loginData).then((response) => { // matrixClient.initCrypto() matrixClient.startClient() matrixClient.once('sync', function (state, prevState, res) { console.log(state) // state will be 'PREPARED' when the client is ready to use matrixClient.on("Room.timeline", eventReceiverCallback) onMessage(matrixMessage, sendMessageToMatrix) }) }) }
zum Senden über diesen Client benutze ich die folgende Funktion, die bei mir in global liegt und damit allen scripts zur Verfügung steht
/** * send message to matrix messager * * @param message Message to send */ const sendMessageToMatrix = function(message:string, prefix:string = scriptName + ": ") { if(isScriptActive('script.js.test.matrix-client')) { messageTo('matrixMessage', prefix + message) } }
Vielleicht kann jemand etwas damit angefangen
VG,
powo01 -
@powo01 Cool, was du da programmiert hast! Wärst du bereit, daraus einen Adapter zu machen? Das ist absolut kein Hexenwerk. Damit könnten andere ohne grossen Aufwand (und Programmierkenntnisse) den Chat Client auch verwenden.
Falls du Tipps brauchst oder Fragen hast zur Adapter Entwicklung, stell sie einfach hier; es findet sich immer jemand, der deine Fragen beantworten kann.
-
Hallo, da ich diesen Artikel merhmals bei Google gefunden habe, wollte ich an dieser Stelle fragen.
Gibt es einen ausgereiften MatrixChat Adapter? Weil dann würde ich auf Telegram verzichten und mir Nachrichten vom SmartHome selber darüber senden.
Ich frage hier, weil dann vermutlich viele andere das ebenfalls über Google finden werden und noch besser weiterwissen.
PS: Naja, wer Matrix im Adapter Fenster reingibt, findet sofort: =D