From 8e379587afa1ee5b9c8f89720bfea03c5c393141 Mon Sep 17 00:00:00 2001 From: Plague Doctor Date: Thu, 9 Jan 2020 11:51:39 +1100 Subject: [PATCH] First commit --- docs/README.md | 84 ++++++++++ docs/nodered-rss.png | Bin 0 -> 120990 bytes docs/nodered-twitter.png | Bin 0 -> 36345 bytes matrixbot/99-matrixbot.html | 182 ++++++++++++++++++++++ matrixbot/99-matrixbot.js | 303 ++++++++++++++++++++++++++++++++++++ matrixbot/icons/matrix.png | Bin 0 -> 255 bytes package.json | 22 +++ 7 files changed, 591 insertions(+) create mode 100644 docs/README.md create mode 100644 docs/nodered-rss.png create mode 100644 docs/nodered-twitter.png create mode 100644 matrixbot/99-matrixbot.html create mode 100644 matrixbot/99-matrixbot.js create mode 100644 matrixbot/icons/matrix.png create mode 100644 package.json diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..5c2bf3f --- /dev/null +++ b/docs/README.md @@ -0,0 +1,84 @@ +# Visual bot creation using Node-RED + +It's very easy to create simple interactions with a [Matrix](https://matrix.org) chatroom without programming. Discover [Node-RED](http://nodered.org/), a visual tool to wire together APIs. We have extended Node-RED with nodes to listen and talk in Matrix chatrooms. + +![Sample Node-RED application](nodered-twitter.png) + +## How to install Node-RED + +Node-RED is an open-source web application that is easy to deploy as a Docker container. You can deploy it locally on your computer using Docker. Or you can use any of the available online Docker hosting offers, such as [sloppy.io](https://sloppy.io/) or [hyper_](https://hyper.sh/). + +The custom Docker image which includes Node-RED plus additional nodes is available on our [DockerHub repository](https://hub.docker.com/r/maski/node-red-docker/) + +### Install Node-RED on your local machine + +First, [install Docker](http://www.docker.com/products/docker) if you haven't done it yet. + +Then you just need to run: + + docker run -it -p 1880:1880 --name mynodered maski/node-red-docker + +Let's dissect that command... + + docker run - run this container... and build locally if necessary first. + -it - attach a terminal session so we can see what is going on + -p 1880:1880 - connect local port 1880 to the exposed internal port 1880 + --name mynodered - give this machine a friendly local name + maski/node-red-docker - the image to base it on + + +Running that command should give a terminal window with a running instance of Node-RED + + Welcome to Node-RED + =================== + 8 Apr 12:13:44 - [info] Node-RED version: v0.14.5 + 8 Apr 12:13:44 - [info] Node.js version: v4.4.7 + .... etc + +You can then browse to `http://{host-ip}:1880` to get the familiar Node-RED desktop. + + +### Install Node-RED on an online Docker hosting + +A quick and easy way to host it online is to use Sloppy.io's 1-month free trial. +Once you have created an account, go to the Dashboard and create a new project, a new service inside it, and an app within it using `maski/node-red-docker` as image path and pick a domain URI, such as `my-node-red.sloppy.zone`. Deploy the project, and you will have your own Node-RED server up and running at the selected URI. + +## How to use Node-RED + +You can learn how to use Node-RED by following the [Node-RED getting started guide](http://nodered.org/docs/getting-started/first-flow). You can find additional tutorials [here](http://noderedguide.com/). + +## How to use the Matrix nodes in Node-RED + +The package `node-red-contrib-matrixbot`, included in the abovementioned Docker image, adds 3 node types to the Node-RED palette (Matrix section, at the bottom): +* *Matrix sender*: sends messages from your Node-RED flow to the chatroom +* *Matrix receiver*: listens to messages in a chatroom and sends them to your Node-RED flow +* *Matrix command*: listens only to messages starting with a specific command and sends them to your Node-RED flow + +All of these nodes require a Matrix Configuration with the following settings: + +* *User ID*: the user ID in the matrix server, for instance @mybot:matrix.org +* *Access token*: the access token of the user in the matrix server +* *Server URL*: URL of the Matrix homeserver, e.g. https://matrix.org +* *Room ID*: ID of the chatroom to join when starting. If no room is specified, it will automatically join any room where it is invited + +## A simple application + +We will create a simple application that will send messages to a chatroom whenever a RSS feed gets updated: + +* First, invite the bot to the chatroom where it will be speaking and note the room ID. +* In Node-RED, pick the *Feedparse* node from the palette (you can filter by typing the first letters at the top) and drop it on the canvas +* Double-click on it to configure it and then enter a RSS feed, for instance `http://rss.nytimes.com/services/xml/rss/nyt/World.xml`. Give the node a name if you want and then click *Done*. +* Pick the *Matrix sender* node and drop it on the canvas. Link the output of the previous node to its input. +* Now double click on it and click on the pencil next to *Connection* to configure the Matrix settings. Follow the instructions described in the previous section. +* Once you're done, click the *Deploy* button at the top right corner and you're done! +* If you want to show also the link in the resulting message, try adding a *function* node in the middle with the following code: +``` +var title = msg.article.title; +var link = msg.topic; +msg.payload = title + " \n" + link; +return msg; +``` + +![Sample Node-RED application](nodered-rss.png) + +![ ](https://ga-beacon.appspot.com/UA-63227151-9/docs/README.md?pixel) \ No newline at end of file diff --git a/docs/nodered-rss.png b/docs/nodered-rss.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4b18655fa4964f22f23ac3626bd77f4ba14ec8 GIT binary patch literal 120990 zcmXVY1yoy2*LCnCsa0RUcH0KkDc03ehO01&xm zw`z#MUqH1~l9L9!{`dIaQJe%{L3fom@PJ?C|M!#~au9>R9iSlnLECrnD90@S_s*G{wP9eSOekaS-!6rsM*!q@=uLR9gVgQ1g

}924&J=USXKdu`1UD1}1OOz)pVw)T@c^ea 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

#}1qlw938MPY*kt5@r5Gn}N$bSli2!a4P)jb5D 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 QJ^%m!07*qoM6N<$g8k+Gg#Z8m literal 0 HcmV?d00001 diff --git a/docs/nodered-twitter.png b/docs/nodered-twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..e61ba981ea23d96a9b99f6064d4ad39dce7564e6 GIT binary patch literal 36345 zcma&O1yCG8v^Kg(aCavxmf#R1IDrkp-QC@Sy98T;g%BV(1Pku23GNmwxVt+n>_53u zukNc?|9w-iTWt5t^qxL_&Ue24hA0)K57-zK7$6V`TUG|51_B|L0l!#ih`=YEZMIRs z8!XB8!!2~Ktlg(;qd8W zzk;vt*dVdkz|(NRNjMrXy8pk2FM3=%=1cI#<$aL%cGBw8iI*g5q;RHsT6U+;;q2Ab zRTdi-2$Vy6NKChu8%gtUxzv2%+{wqs@9B>cNsog`$iM HWZvovNKd0D-QQ{e?RO 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 literal 0 HcmV?d00001 diff --git a/matrixbot/99-matrixbot.html b/matrixbot/99-matrixbot.html new file mode 100644 index 0000000..32c00cb --- /dev/null +++ b/matrixbot/99-matrixbot.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/matrixbot/99-matrixbot.js b/matrixbot/99-matrixbot.js new file mode 100644 index 0000000..1885258 --- /dev/null +++ b/matrixbot/99-matrixbot.js @@ -0,0 +1,303 @@ +module.exports = function(RED) { + + "use strict"; + + var sdk = require("matrix-js-sdk"); + var md = require("markdown-it")(); + +// -------------------------------------------------------------------------------------------- + // The configuration node holds the configuration and credentials for all nodes. + + function MatrixBotNode(config) { + RED.nodes.createNode(this, config); + + // copy "this" object in case we need it in context of callbacks of other functions. + var node = this; + + node.log("Initializing Matrix Bot node"); + + // Configuration options passed by Node Red + node.userId = config.userId; + node.room = config.room; + + // TODO: Switch from configuration to credentials and check with if (this.credentials) + node.accessToken = config.accessToken; + node.matrixServerURL = config.matrixServerURL; + + node.matrixClient = sdk.createClient({ + baseUrl: node.matrixServerURL, + accessToken: node.accessToken, + userId: node.userId + }); + + // If no room is specified, join any room where we are invited + if (!node.room || node.room === "") { + node.matrixClient.on("RoomMember.membership", function(event, member) { + if (member.membership === "invite" && member.userId === node.userId) { + node.log("Trying to join room " + member.roomId); + node.matrixClient.joinRoom(member.roomId).then(function() { + node.log("Automatically accepted invitation to join room " + member.roomId); + }).catch(function(e) { + node.warn("Cannot join room (probably because I was kicked) " + member.roomId + ": " + e); + }); + } + }); + } + + node.matrixClient.on("sync", function(state, prevState, data) { + switch (state) { + case "ERROR": + // update UI to say "Connection Lost" + node.warn("Connection to Matrix server lost"); + node.updateConnectionState(false); + break; + case "SYNCING": + // update UI to remove any "Connection Lost" message + node.updateConnectionState(true); + break; + case "PREPARED": + // the client instance is ready to be queried. + node.log("Synchronized to Matrix server."); + + if (node.room) { + node.log("Trying to join room " + node.room); + + node.matrixClient.joinRoom(node.room, {syncRoom:false}) + .then(function(joinedRoom) { + node.log("Joined " + node.room); + node.room = joinedRoom.roomId; + node.updateConnectionState(true); + }).catch(function(e) { + node.warn("Error joining " + node.room + ": " + e); + }); + } else { + node.log("No room configured. Will only join rooms where I'm invited"); + } + break; + } + }); + + node.log("Connecting to Matrix server..."); + + node.matrixClient.startClient(); + + // Called when the connection state may have changed + this.updateConnectionState = function(connected){ + if (node.connected !== connected) { + node.connected = connected; + if (connected) { + node.emit("connected"); + } else { + node.emit("disconnected"); + } + } + }; + + // When Node-RED updates nodes, disconnect from server to ensure a clean start + node.on("close", function (done) { + node.log("Matrix configuration node closing..."); + if (node.matrixClient) { + node.log("Disconnecting from Matrix server..."); + node.matrixClient.stopClient(); + node.updateConnectionState(false); + } + done(); + }); + + } + + RED.nodes.registerType("matrix bot", MatrixBotNode); + +// -------------------------------------------------------------------------------------------- + // The output node sends a message to the chat. + + function MatrixOutNode(config) { + RED.nodes.createNode(this, config); + + // copy "this" object in case we need it in context of callbacks of other functions. + var node = this; + + // Configuration options passed by Node Red + node.configNode = RED.nodes.getNode(config.bot); + + node.configNode.on("connected", function(){ + node.status({ fill: "green", shape: "ring", text: "connected" }); + }); + + node.configNode.on("disconnected", function(){ + node.status({ fill: "red", shape: "ring", text: "disconnected" }); + }); + + this.on("input", function (msg) { + if (! node.configNode || ! node.configNode.matrixClient) { + node.warn("No configuration"); + return; + } + + if (msg.payload) { + node.log("Sending message " + msg.payload); + + var destRoom = ""; + if (msg.roomId) { + destRoom = msg.roomId; + } else if (node.configNode.room) { + destRoom = node.configNode.room; + } else { + node.warn("Room must be specified in msg.roomId or in configuration"); + return; + } + + node.configNode.matrixClient.sendHtmlMessage(destRoom, msg.payload.toString(), md.render(msg.payload.toString())) + .then(function() { + node.log("Message sent: " + msg.payload); + }).catch(function(e){ + node.warn("Error sending message " + e); + }); + } else { + node.warn("msg.payload is empty"); + } + }); + + this.on("close", function(done) { + node.log("Matrix out node closing..."); + done(); + }); + } + + RED.nodes.registerType("matrix sender", MatrixOutNode); + + +// -------------------------------------------------------------------------------------------- + // The input node receives messages from the chat. + + function MatrixInNode(config) { + RED.nodes.createNode(this, config); + + // copy "this" object in case we need it in context of callbacks of other functions. + var node = this; + node.configNode = RED.nodes.getNode(config.bot); + + node.log("MatrixInNode initializing..."); + + if (!node.configNode) { + node.warn("No configuration node"); + return; + } + + node.status({ fill: "red", shape: "ring", text: "disconnected" }); + + node.configNode.on("disconnected", function(){ + node.status({ fill: "red", shape: "ring", text: "disconnected" }); + }); + + node.configNode.on("connected", function() { + node.status({ fill: "green", shape: "ring", text: "connected" }); + node.configNode.matrixClient.on("Room.timeline", function(event, room, toStartOfTimeline, data) { + if (toStartOfTimeline) { + return; // don't print paginated results + } + if (event.getType() !== "m.room.message") { + return; // only keep messages + } + if (!event.getSender() || event.getSender() === node.configNode.userId) { + return; // ignore our own messages + } + if (!event.getUnsigned() || event.getUnsigned().age > 1000) { + return; // ignore old messages + } + // TODO process messages other than text + node.log( + // the room name will update with m.room.name events automatically + "Received chat message: (" + room.name + ") " + event.getSender() + " :: " + event.getContent().body + ); + var msg = { + payload: event.getContent().body, + sender: event.getSender(), + roomId: room.roomId + }; + node.send(msg); + }); + }); + + this.on("close", function(done) { + node.log("Matrix in node closing..."); + done(); + }); + + } + + RED.nodes.registerType("matrix receiver", MatrixInNode); + +// -------------------------------------------------------------------------------------------- + // The command node receives messages from the chat. + + function MatrixCommandNode(config) { + RED.nodes.createNode(this, config); + + // copy "this" object in case we need it in context of callbacks of other functions. + var node = this; + node.command = config.command; + node.configNode = RED.nodes.getNode(config.bot); + + node.log("MatrixCommandNode initializing..."); + + if (!node.configNode) { + node.warn("No configuration node"); + return; + } + + node.status({ fill: "red", shape: "ring", text: "disconnected" }); + + node.configNode.on("disconnected", function(){ + node.status({ fill: "red", shape: "ring", text: "disconnected" }); + }); + + node.configNode.on("connected", function() { + node.status({ fill: "green", shape: "ring", text: "connected" }); + node.configNode.matrixClient.on("Room.timeline", function(event, room, toStartOfTimeline, data) { + if (toStartOfTimeline) { + return; // don't print paginated results + } + if (event.getType() !== "m.room.message") { + return; // only keep messages + } + if (!event.getSender() || event.getSender() === node.configNode.userId) { + return; // ignore our own messages + } + if (!event.getUnsigned() || event.getUnsigned().age > 1000) { + return; // ignore old messages + } + // TODO process messages other than text + node.log( + // the room name will update with m.room.name events automatically + "Received chat message: (" + room.name + ") " + event.getSender() + " :: " + event.getContent().body + ); + + var message = event.getContent().body; + + var tokens = message.split(" "); + + if (tokens[0] == node.command) { + node.log("Recognized command " + node.command + " Processing..."); + var remainingText = message.replace(node.command, ""); + var msg = { + payload: remainingText, + sender: event.getSender(), + roomId: room.roomId, + originalMessage: message + }; + node.send([msg, null]); + } + + }); + }); + + this.on("close", function(done) { + node.log("Matrix command node closing..."); + done(); + }); + } + + RED.nodes.registerType("matrix command", MatrixCommandNode); + +} diff --git a/matrixbot/icons/matrix.png b/matrixbot/icons/matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..ecec1cce98f986973b63dedc39827bea8db89c44 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6n3BBRT^Rni_n+Ah4nJ za0`PlBg3pY5H=O_6Ju$U#uCr=E&?e zvMfkXEm_!+!2RZEXLR$9GEKR+4D27*@VwO)FTBi@FIzKp7t_kB7$CJxMZq8Cih xbxY#vS<%>a