npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-matrix-chat

v0.8.0

Published

Matrix chat server client for Node-RED

Downloads

106

Readme

node-red-contrib-matrix-chat

Matrix chat server client for Node-RED

Currently we are in beta. We ask that you open any issues you have on our repository to help us reach a stable well tested version. Things may change & break before our first release so check changelog before updating.

If you need help with this feel free to join our public matrix room at #node-red-contrib-matrix-chat:skylar.tech

Features

The following is supported from this package:

  • End-to-end encryption
  • Receive events from a room (messages, reactions, images, audio, locations, and files) whether encrypted or not
  • Send Images/Files (sending files to e2ee room doesn't currently encrypt them yet)
  • Edit messages
  • Send typing events (Bot is typing ...)
  • Delete events (messages, reactions, etc)
  • Decrypt files in e2ee rooms
  • Send HTML/Plain Text Message/Notice
  • React to messages
  • Register user's on closed registration Synapse servers using registration_shared_secret (Admin Only)
  • List out users on a Synapse server (Admin Only)
  • Get WhoIs info for a Synapse user (Admin Only)
  • Add/Edit Synapse users using the v2 API (requires a pre-existing admin account)
  • Deactivate users on Synapse servers (Admin Only)
  • Get a user list from a room
  • Kick user from room
  • Ban user from room
  • Join, Create, Invite, and Leave rooms
  • Synapse admin API to force add user to room (requires bot to be in same room already)

Therefore, you can easily build a bot, chat relay, or administrate your Matrix server from within Node-RED.

Installing

You can either install from within Node-RED by searching for node-red-contrib-matrix-chat or run this from within your Node-RED directory:

npm install node-red-contrib-matrix-chat

Usage

We have examples! Check them out

Extra functionality

You are not limited by just the nodes we have created. If you turn on global access when setting up your Matrix Client you can access the client directly from any function node to write your own logic.

View an example here

End-to-End Encryption Notes

Currently, this module has no way of getting encryption keys from other devices on the same account. Therefore it is recommended you use the bot exclusively with Node-RED after it's creation. Failure to do so will lead to your bot being unable to receive messages from e2ee rooms it joined from another client. Shared secret registration makes this super easy since it returns a token and device ID.

This module stores a folder in your Node-RED directory called matrix-client-storage and is it vital that you periodically back this up if you are using e2ee. This is where the client stores all the keys necessary to decrypt messages and if lost you will lose access to e2e rooms. If you move your client to another NR install make sure to migrate this folder as well (and do not let both the old and new client run at same time).

Want to contribute? Any help on getting the last pieces of e2ee figured out would be greatly appreciated :)

Generate user

You will need a user to use this module. Luckily this module comes with a node that allows you to register users to a homeserver using the secret registration endpoint. This is perfect because it returns an access_token as well as a device_id which is exactly what we need.

Click here to see how to generate a user using secret registration

Other Packages

Contributing

All contributions are welcome! If you do add a feature please do a pull request so that everyone benefits :)

Sharing is caring!