New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@metafam/node-red-node-discord

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@metafam/node-red-node-discord

Discord nodes for recieving / sending messages.

  • 2.3.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-red-node-discord

Inspired by node-red-contrib-discord

Node-red nodes that allow you to interact with Discord, via Discord.js. Can be used to implement simple write/read Bots

Installation

Run the following command in ~/.node-red:

npm install node-red-node-discord

Nodes

node-red-node-discord gives you access to following nodes:

  • discord-get-messages is a node with no inputs and one output allowing you to receive notifications of incoming messages.
  • discord-get-emoji-reactions is a node with no inputs and one output allowing you to receive notifications when user reacts on message with emoji.
  • discord-send-messages is a node with one input and no outputs allowing you to send messages to a Discord channel.
  • discord-members-monitoring is a node with one input and output, designed to get all channels and their's members for metrics.

discord-get-messages

  • Triggers whenever a message was received on Discord
  • You can pass list of channels to listen to Note : valid channel list example #1245#general#1234567#another-channel
  • msg.payload will be set to the textual content of the message
  • msg.channel will be set to an Object containing info on the channel the message was received from (does not contain any discord.js functions)
  • msg.author will be set to an Object containing info on the user that sent the message (does not contain any discord.js functions)
  • msg.attachments will be set to Array containing attachments info in format
{
  filename: string, // Filename
  href: string // File Url generated by Discord
}
  • msg.rawData will be set to an Object containing info on the message that was received, but again without any of the discord.js functions
  • To reply to a message, use the discord-send-messages node.

discord-send-messages

  • Sends msg.payload on Discord channel with id msg.channel You can pass channel name in msg.channel as well as id, i.e. general
    Note: this feature possibly can cause sending message to wrong channel if bot connected to multiple servers and there are same named channels

  • Feel free to @mention people in message.payload
    Example: Hello @Gago, nice module :) , also you can use @here, @everyone mentions

  • To use discord's rich text embed specify msg.rich with following content (props marked with ? are not required)

    {
       title?: string;
       description?: string;
       url?: string;
       color?: ColorResolvable;
       timestamp?: number | Date;
       footer?: {
                   icon?: string;
                   text: string;
                 };
       thumbnail?: string;
       author: {
                 name: string;
                 icon?: string;
                 url?: string;
               };
    
       attachments?: Attachment[];
       field?: {
                 name: string;
                 value: string;
                 inline?: boolean;
                 };
       fields?: [
                   {
                     name: string;
                     value: string;
                     inline?: boolean;
                   }
                 ];
    }
    
  • msg.attachments contains attachments to send, it must be array containing objects in format

    {
       name: string;
       file: string | Buffer | Stream;
    }
    

    discord-members-monitoring

    • Triggered from outside, for now doesn't provide any configuration options
    • Set's monitored data to msg.monitoringData with following content
    {
    [category: string]: [
    	{
    	id: string;
    	channelName: string;
    	members: [
    		{
    		id: string;
    		username: string;
    		joinedDate: Date;
    		permissions: PermissionString[];
    		roles: [
    			{
     			id: string;
    			name: string;
    			permissions: number;
    			}
    			]
    		}
    		]
    	}
    	]
    }
    

Troubleshooting

Here is some known issues and workarounds for them

UnhandledPromiseRejectionWarning: TypeError: Cannot assign to read only property 'writeQueueSize' of object '#'

Outgoing node message has a TCP stream which can't be cloned. This needs to be fixed in a future release but for now you can avoid the issue by ensuring the output from the node isn't branched (going to multiple nodes).

Keywords

FAQs

Package last updated on 26 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc