https://github.com/maxerbox/message-suite-fisherman
A middleware used to add some features to fisherman, like bot typing, or Embed compatibility
https://github.com/maxerbox/message-suite-fisherman
Last synced: over 1 year ago
JSON representation
A middleware used to add some features to fisherman, like bot typing, or Embed compatibility
- Host: GitHub
- URL: https://github.com/maxerbox/message-suite-fisherman
- Owner: maxerbox
- License: isc
- Created: 2017-09-23T10:08:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-23T18:16:31.000Z (almost 9 years ago)
- Last Synced: 2025-03-17T07:54:12.771Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License
Awesome Lists containing this project
README
# Message Suite - Fisherman
> Add some message features to fisherman. Copyrights (c), Simon Sassi 2017
## What is the message suite
The message suite is a fisherman middleware that is using the prototype editing available by fisherman
It edits the FisherResponse prototype to provide some cool features like:
- Bot Typing: send a message with a delay to simulate real user typing, with `response.send()`
- Embed compatibility: it checks if the bot can send embed, if it can't, it convert the embed to a formatted text
## Setting up
```bash
npm install --save command-loader-fisherman
```
Include the middleware to the bot:
```javascript
[...]
const MessageSuite = require("message-suite-fisherman")
var messageSuitePlugin = new MessageSuite({enableTyping: true, enableEmbedCompatibilityMode: true})
bot.use(messageSuitePlugin)
[...]
```
## Api docs
### new MessageSuite(opts)
Creates an instance of MessageSuite.
### MessageSuite constructor options
| Parameter name | Description | Type | Default value |
|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|----------|---------------|
| enableTyping | Enable typing when it's a command and response.send() is used | Boolean | false |
| defaultTypingCount | Default typing count when no typing count is specified in the command's locales | Integer | 1 |
| defaultTimeout | Default timeout in MS to send the message after starting typing when no timeout is specified in the command's locales | Integer | 1000 |
| enableEmbedCompatibilityMode | If it should enable the Compatibilty mode, it will send formatted text instead of an embed if the bot hasn't the perm EMBED_LINKS | Boolean | true |
| embedCompatibilityModeFormat | The function used to convert the embed to formatted text | Function | defaultFormat |
### Setting the embedCompatibilityModeFormat options
This parameter is an option used to parse the embed.
The default value is a simple function who looks like this:
```javascript
defaultFormat (embed) {
var formatted = ''
if (embed.title) formatted = formatted + '__' + embed.title + '__\n'
if (embed.description) formatted = formatted + '\n' + embed.description + '\n'
if (embed.fields) for (var i in embed.fields)formatted = formatted + '=> **' + embed.fields[i].name + '**\n ' + embed.fields[i].value + '\n'
return formatted
}
```
The `embed` parameter is an Object. This function has to return a string value
## Custom timeout and typing count in the command locales property
You can set as well the timeout and the typing count in the command's locales property:
Example with a timeout of `5s` and a typing count of `1`
```javascript
register.textCommand('test', {locales: {typingCount:1, typingTimeout:5000}}, function (req, res) {
console.log("Command trigerred")
var embed = {
title: "a test",
description: "Just a simple test",
fields: [{name: "Cat title", value: "Guoi daziou duoaoauj dqiupou"},{name: "Cat title", value: "Guoi daziou duoaoauj dqiupou"}]
}
res.send("ok", {embed: embed})
})
```