Compare commits

..

No commits in common. "cd29f690b93361faa82da817018bb9890a85583d" and "c61eadd05d7360016ed6918cfecbac48ed0a740e" have entirely different histories.

22 changed files with 86 additions and 196 deletions

View File

@ -8,10 +8,9 @@ module.exports = function(RED) {
this.server = RED.nodes.getNode(n.server);
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
@ -42,7 +41,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
@ -65,10 +64,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-create-room", MatrixCreateRoom);
}

View File

@ -12,22 +12,22 @@ module.exports = function(RED) {
const { got } = await import('got');
if(!msg.type) {
node.error('msg.type is required.', msg);
node.error('msg.type is required.');
return;
}
if(!msg.content) {
node.error('msg.content is required.', msg);
node.error('msg.content is required.');
return;
}
if(!msg.content.file) {
node.error('msg.content.file is required.', msg);
node.error('msg.content.file is required.');
return;
}
if(!msg.url) {
node.error('msg.url is required.', msg);
node.error('msg.url is required.');
return;
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -28,7 +27,7 @@ module.exports = function(RED) {
node.on('input', function(msg) {
if(!msg.eventId) {
node.error("eventId is missing", msg);
node.error("eventId is missing");
node.send([null, msg])
return;
}
@ -39,7 +38,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
return;
}
@ -71,10 +70,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-delete-event",MatrixDeleteEvent);
}

View File

@ -9,10 +9,9 @@ module.exports = function(RED) {
this.roomId = n.roomId;
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
@ -38,18 +37,18 @@ module.exports = function(RED) {
node.on("input", function (msg) {
if (! node.server || ! node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
msg.topic = node.roomId || msg.topic;
if(!msg.topic) {
node.error("room must be defined in either msg.topic or in node config", msg);
node.error("room must be defined in either msg.topic or in node config");
return;
}
@ -65,10 +64,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-invite-room", MatrixInviteRoom);
}

View File

@ -11,7 +11,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -25,17 +24,17 @@ module.exports = function(RED) {
node.on("input", function (msg) {
if (! node.server || ! node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
if(!msg.topic) {
node.error("Room must be specified in msg.topic", msg);
node.error("Room must be specified in msg.topic");
return;
}
@ -47,15 +46,11 @@ module.exports = function(RED) {
node.send([msg, null]);
})
.catch(function(e){
node.error("Error trying to join room " + msg.topic + ":" + e, msg);
node.error("Error trying to join room " + msg.topic + ":" + e);
msg.error = e;
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-join-room", MatrixJoinRoom);
}

View File

@ -11,10 +11,9 @@ module.exports = function(RED) {
node.status({ fill: "red", shape: "ring", text: "disconnected" });
if (!node.server) {
node.error("No configuration node", {});
node.error("No configuration node");
return;
}
node.server.register(node);
node.server.on("disconnected", function(){
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -26,17 +25,17 @@ module.exports = function(RED) {
node.on('input', function(msg) {
if (! node.server || ! node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!msg.topic) {
node.error('No room provided in msg.topic', msg);
node.error('No room provided in msg.topic');
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
@ -45,15 +44,11 @@ module.exports = function(RED) {
node.server.matrixClient.leave(msg.topic);
node.send([msg, null]);
} catch(e) {
node.error("Failed to leave room " + msg.topic + ": " + e, msg);
node.error("Failed to leave room " + msg.topic + ": " + e);
msg.payload = e;
node.send([null, msg]);
}
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-leave-room", MatrixLeaveRoom);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -27,30 +26,30 @@ module.exports = function(RED) {
node.on("input", function (msg) {
if (!node.server || !node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
msg.topic = node.roomId || msg.topic;
if(!msg.topic) {
node.error("Room must be specified in msg.topic or in configuration", msg);
node.error("Room must be specified in msg.topic or in configuration");
return;
}
let payload = n.reaction || msg.payload;
if(!payload) {
node.error('msg.payload must be defined or the reaction configured on the node.', msg);
node.error('msg.payload must be defined or the reaction configured on the node.');
return;
}
let eventId = msg.referenceEventId || msg.eventId;
if(!eventId) {
node.error('Either msg.referenceEventId or msg.eventId must be defined to react to a message.', msg);
node.error('Either msg.referenceEventId or msg.eventId must be defined to react to a message.');
return;
}
@ -76,10 +75,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-react", MatrixReact);
}

View File

@ -21,10 +21,9 @@ module.exports = function(RED) {
node.status({ fill: "red", shape: "ring", text: "disconnected" });
if (!node.server) {
node.error("No configuration node", {});
node.error("No configuration node");
return;
}
node.server.register(node);
node.server.on("disconnected", function(){
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -150,10 +149,6 @@ module.exports = function(RED) {
node.send(msg);
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-receive", MatrixReceiveMessage);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -27,23 +26,23 @@ module.exports = function(RED) {
node.on("input", function (msg) {
if (! node.server || ! node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
msg.topic = node.roomId || msg.topic;
if(!msg.topic) {
node.error("Room must be specified in msg.topic or in configuration", msg);
node.error("Room must be specified in msg.topic or in configuration");
return;
}
if(!msg.userId) {
node.error("msg.userId was not set.", msg);
node.error("msg.userId was not set.");
return;
}
@ -54,15 +53,11 @@ module.exports = function(RED) {
node.send([msg, null]);
})
.catch(function(e){
node.error("Error trying to ban " + msg.userId + " from " + msg.topic, msg);
node.error("Error trying to ban " + msg.userId + " from " + msg.topic);
msg.error = e;
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-room-ban", MatrixBan);
}

View File

@ -9,10 +9,9 @@ module.exports = function(RED) {
this.roomId = n.roomId;
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -27,10 +26,6 @@ module.exports = function(RED) {
node.server.on("Room.invite", async function(msg) {
node.send(msg);
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-room-invite", MatrixRoomInvite);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -27,23 +26,23 @@ module.exports = function(RED) {
node.on("input", function (msg) {
if (! node.server || ! node.server.matrixClient) {
node.error("No matrix server selected", msg);
node.error("No matrix server selected");
return;
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
msg.topic = node.roomId || msg.topic;
if(!msg.topic) {
node.error("Room must be specified in msg.topic or in configuration", msg);
node.error("Room must be specified in msg.topic or in configuration");
return;
}
if(!msg.userId) {
node.error("msg.userId was not set.", msg);
node.error("msg.userId was not set.");
return;
}
@ -54,15 +53,11 @@ module.exports = function(RED) {
node.send([msg, null]);
})
.catch(function(e){
node.error("Error trying to kick " + msg.userId + " from " + msg.topic, msg);
node.error("Error trying to kick " + msg.userId + " from " + msg.topic);
msg.error = e;
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-room-kick", MatrixKick);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -32,13 +31,13 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
let roomId = node.roomId || msg.topic;
if(!roomId) {
node.error("msg.topic is required. Specify in the input or configure the room ID on the node.", msg);
node.error("msg.topic is required. Specify in the input or configure the room ID on the node.");
return;
}
@ -66,10 +65,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-room-users", MatrixRoomUsers);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -32,7 +31,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
@ -58,7 +57,7 @@ module.exports = function(RED) {
}
if(!msg.payload) {
node.error('msg.payload is required', msg);
node.error('msg.payload is required');
return;
}
@ -95,10 +94,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-send-file", MatrixSendFile);
}

View File

@ -13,7 +13,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -32,7 +31,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
@ -58,7 +57,7 @@ module.exports = function(RED) {
}
if(!msg.payload) {
node.error('msg.payload is required', msg);
node.error('msg.payload is required');
return;
}
@ -99,10 +98,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-send-image", MatrixSendImage);
}

View File

@ -54,7 +54,6 @@ module.exports = function(RED) {
node.warn("No configuration node");
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
@ -72,7 +71,7 @@ module.exports = function(RED) {
if(msgType === 'msg.type') {
if(!msg.type) {
node.error("msg.type type is set to be passed in via msg.type but was not defined", msg);
node.error("msg.type type is set to be passed in via msg.type but was not defined");
return;
}
msgType = msg.type;
@ -80,7 +79,7 @@ module.exports = function(RED) {
if(msgFormat === 'msg.format') {
if(!msg.format) {
node.error("Message format is set to be passed in via msg.format but was not defined", msg);
node.error("Message format is set to be passed in via msg.format but was not defined");
return;
}
msgFormat = msg.format;
@ -92,7 +91,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
return;
}
@ -105,7 +104,7 @@ module.exports = function(RED) {
let payload = n.message || msg.payload;
if(!payload) {
node.error('msg.payload must be defined or the message configured on the node.', msg);
node.error('msg.payload must be defined or the message configured on the node.');
return;
}
@ -153,10 +152,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-send-message", MatrixSendImage);
}

View File

@ -44,7 +44,6 @@ module.exports = function(RED) {
this.credentials = {};
}
this.users = {};
this.connected = null;
this.name = n.name;
this.userId = this.credentials.userId;
@ -69,9 +68,9 @@ module.exports = function(RED) {
let retryStartTimeout = null;
if(!this.credentials.accessToken) {
node.error("Matrix connection failed: missing access token in configuration.", {});
node.error("Matrix connection failed: missing access token in configuration.");
} else if(!this.url) {
node.error("Matrix connection failed: missing server URL in configuration.", {});
node.error("Matrix connection failed: missing server URL in configuration.");
} else {
node.setConnected = async function(connected, cb) {
if (node.connected !== connected) {
@ -89,7 +88,7 @@ module.exports = function(RED) {
device_id = this.matrixClient.getDeviceId();
if(!device_id && node.enableE2ee) {
node.error("Failed to auto detect deviceId for this auth token. You will need to manually specify one. You may need to login to create a new deviceId.", {})
node.error("Failed to auto detect deviceId for this auth token. You will need to manually specify one. You may need to login to create a new deviceId.")
} else {
if(!stored_device_id || stored_device_id !== device_id) {
node.log(`Saving Device ID (old:${stored_device_id} new:${device_id})`);
@ -108,13 +107,13 @@ module.exports = function(RED) {
}).then(
function(response) {},
function(error) {
node.error("Failed to set device label: " + error, {});
node.error("Failed to set device label: " + error);
}
);
}
},
function(error) {
node.error("Failed to fetch device: " + error, {});
node.error("Failed to fetch device: " + error);
}
);
}
@ -190,7 +189,7 @@ module.exports = function(RED) {
try {
await node.matrixClient.decryptEventIfNeeded(event);
} catch (error) {
node.error(error, {});
node.error(error);
return;
}
@ -293,7 +292,7 @@ module.exports = function(RED) {
} else if(prevState === null && state === "ERROR") {
// Occurs when the initial sync failed first time.
node.setConnected(false, function(){
node.error("Failed to connect to Matrix server", {});
node.error("Failed to connect to Matrix server");
});
} else if(prevState === "ERROR" && state === "PREPARED") {
// Occurs when the initial sync succeeds
@ -310,18 +309,18 @@ module.exports = function(RED) {
} else if(prevState === "SYNCING" && state === "RECONNECTING") {
// Occurs when the live update fails.
node.setConnected(false, function(){
node.error("Connection to Matrix server lost", {});
node.error("Connection to Matrix server lost");
});
} else if(prevState === "RECONNECTING" && state === "RECONNECTING") {
// Can occur if the update calls continue to fail,
// but the keepalive calls (to /versions) succeed.
node.setConnected(false, function(){
node.error("Connection to Matrix server lost", {});
node.error("Connection to Matrix server lost");
});
} else if(prevState === "RECONNECTING" && state === "ERROR") {
// Occurs when the keepalive call also fails
node.setConnected(false, function(){
node.error("Connection to Matrix server lost", {});
node.error("Connection to Matrix server lost");
});
} else if(prevState === "ERROR" && state === "SYNCING") {
// Occurs when the client has performed a
@ -333,7 +332,7 @@ module.exports = function(RED) {
// Occurs when the client has failed to
// keepalive for a second time or more.
node.setConnected(false, function(){
node.error("Connection to Matrix server lost", {});
node.error("Connection to Matrix server lost");
});
} else if(prevState === "SYNCING" && state === "SYNCING") {
// Occurs when the client has performed a live update.
@ -345,7 +344,7 @@ module.exports = function(RED) {
// Occurs once the client has stopped syncing or
// trying to sync after stopClient has been called.
node.setConnected(false, function(){
node.error("Connection to Matrix server lost", {});
node.error("Connection to Matrix server lost");
});
}
});
@ -363,7 +362,7 @@ module.exports = function(RED) {
// httpStatus: 401
// }
node.error("Authentication failure: " + errorObj, {});
node.error("Authentication failure: " + errorObj);
stopClient();
});
@ -379,7 +378,7 @@ module.exports = function(RED) {
initialSyncLimit: 8
});
} catch(error) {
node.error(error, {});
node.error(error);
}
}
@ -400,7 +399,7 @@ module.exports = function(RED) {
.then(
function(data) {
if((typeof data['device_id'] === undefined || !data['device_id']) && !node.deviceId && !getStoredDeviceId(localStorage)) {
node.error("/whoami request did not return device_id. You will need to manually set one in your configuration because this cannot be automatically fetched.", {});
node.error("/whoami request did not return device_id. You will need to manually set one in your configuration because this cannot be automatically fetched.");
}
if('device_id' in data && data['device_id'] && !node.deviceId) {
// if we have no device_id configured lets use the one
@ -410,7 +409,7 @@ module.exports = function(RED) {
// make sure our userId matches the access token's
if(data['user_id'].toLowerCase() !== node.userId.toLowerCase()) {
node.error(`User ID provided is ${node.userId} but token belongs to ${data['user_id']}`, {});
node.error(`User ID provided is ${node.userId} but token belongs to ${data['user_id']}`);
return;
}
run().catch((error) => node.error(error));
@ -419,19 +418,11 @@ module.exports = function(RED) {
// if the error isn't authentication related retry in a little bit
if(err.code !== "M_UNKNOWN_TOKEN") {
retryStartTimeout = setTimeout(checkAuthTokenThenStart, 15000);
node.error("Auth check failed: " + err, {});
node.error("Auth check failed: " + err);
}
}
)
})();
// Keep track of all consumers of this node to be able to catch errors
node.register = function(consumerNode) {
node.users[consumerNode.id] = consumerNode;
};
node.deregister = function(consumerNode) {
delete node.users[consumerNode.id];
};
}
}
@ -503,7 +494,7 @@ module.exports = function(RED) {
fs.copySync(oldStorageDir, dir);
}
} catch (err) {
node.error(err, {});
node.error(err);
}
});

View File

@ -8,10 +8,9 @@ module.exports = function(RED) {
this.server = RED.nodes.getNode(n.server);
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
@ -42,12 +41,12 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
if(!msg.userId) {
node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)", msg);
node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)");
return;
}
@ -70,10 +69,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-synapse-create-edit-user", MatrixSynapseCreateEditUser);
}

View File

@ -8,10 +8,9 @@ module.exports = function(RED) {
this.server = RED.nodes.getNode(n.server);
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
@ -42,12 +41,12 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
if(!msg.userId) {
node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)", msg);
node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)");
return;
}
@ -71,10 +70,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-synapse-deactivate-user", MatrixSynapseDeactivateUser);
}

View File

@ -9,9 +9,10 @@ module.exports = function(RED) {
this.roomId = n.roomId;
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
if (!variables.hasOwnProperty(key)) {
@ -41,18 +42,18 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
msg.topic = node.roomId || msg.topic;
if(!msg.topic) {
node.error("room must be defined in either msg.topic or in node config", msg);
node.error("room must be defined in either msg.topic or in node config");
return;
}
if(!msg.userId) {
node.error("msg.userId is required to set user into a room", msg);
node.error("msg.userId is required to set user into a room");
return;
}
@ -76,10 +77,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-synapse-join-room", MatrixJoinRoom);
}

View File

@ -12,27 +12,25 @@ module.exports = function(RED) {
this.sharedSecret = this.credentials.sharedSecret;
if(!this.server) {
node.error('Server URL must be configured on the node.', {});
node.error('Server URL must be configured on the node.');
return;
}
if(!this.sharedSecret) {
node.error('Shared registration secret must be configured on the node.', {});
node.error('Shared registration secret must be configured on the node.');
return;
}
node.server.register(node);
node.on("input", async function (msg) {
const { got } = await import('got');
if(!msg.payload.username) {
node.error("msg.payload.username is required", msg);
node.error("msg.payload.username is required");
return;
}
if(!msg.payload.password) {
node.error("msg.payload.password is required", msg);
node.error("msg.payload.password is required");
return;
}
@ -52,7 +50,7 @@ module.exports = function(RED) {
var nonce = response.body.nonce;
if(!nonce) {
node.error('Could not get nonce from /_synapse/admin/v1/register', msg);
node.error('Could not get nonce from /_synapse/admin/v1/register');
return;
}
@ -98,10 +96,6 @@ module.exports = function(RED) {
node.send(msg);
})();
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-synapse-register", MatrixSynapseRegister, {
credentials: {

View File

@ -12,8 +12,6 @@ module.exports = function(RED) {
return;
}
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" });
node.server.on("disconnected", function(){
@ -31,7 +29,7 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
@ -64,10 +62,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-synapse-users", MatrixSynapseUsers);
}

View File

@ -8,12 +8,10 @@ module.exports = function(RED) {
this.server = RED.nodes.getNode(n.server);
if(!this.server) {
node.error('Server must be configured on the node.', {});
node.error('Server must be configured on the node.');
return;
}
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) {
if (!variables.hasOwnProperty(key)) {
@ -43,12 +41,12 @@ module.exports = function(RED) {
}
if(!node.server.isConnected()) {
node.error("Matrix server connection is currently closed", msg);
node.error("Matrix server connection is currently closed");
node.send([null, msg]);
}
if(!msg.userId) {
node.error("msg.userId must be set to get user whois data", msg);
node.error("msg.userId must be set to get user whois data");
return;
}
@ -72,10 +70,6 @@ module.exports = function(RED) {
node.send([null, msg]);
});
});
node.on("close", function() {
node.server.deregister(node);
});
}
RED.nodes.registerType("matrix-whois-user", MatrixWhoIsUser);
}