https://github.com/artginzburg/telegraf-layoutfixer
:airplane: Layout fixing middleware for Telegram bots
https://github.com/artginzburg/telegraf-layoutfixer
middleware telegram
Last synced: 13 days ago
JSON representation
:airplane: Layout fixing middleware for Telegram bots
- Host: GitHub
- URL: https://github.com/artginzburg/telegraf-layoutfixer
- Owner: artginzburg
- License: mit
- Created: 2021-08-08T20:23:46.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2022-06-26T02:20:15.000Z (almost 4 years ago)
- Last Synced: 2025-02-17T21:13:33.601Z (over 1 year ago)
- Topics: middleware, telegram
- Language: JavaScript
- Homepage: https://npm.im/telegraf-layoutfixer
- Size: 67.4 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[telegraf][telegraf]-layoutfixer
[](https://david-dm.org/artginzburg/telegraf-layoutfixer)

Suggests layout typo fixes in Telegram chats (`.рудз` => `/help`)
## Quick start
First, run `npm i telegraf-layoutfixer`. Then, in your [Telegraf][telegraf] app:
```js
const { Telegraf } = require('telegraf')
const layoutfixer = require('telegraf-layoutfixer')
const bot = new Telegraf(process.env.BOT_TOKEN)
// ...
bot.use(layoutfixer())
bot.launch()
```
> layoutfixer should be connected last, after all the other text-related middlewares
## Preview

## Options
[Defaults](https://github.com/artginzburg/telegraf-layoutfixer/blob/main/defaultConfig.js) are shown below:
```js
require('telegraf-layoutfixer')({
allowUnlistedCommands: false,
validator: /^\w+$/,
validInitiators: ['/', '.', '?', '÷', '\\', '|', '«', '»'],
commands: undefined,
});
```
### allowUnlistedCommands (_default: `false`_)
Sets whether the bot should suggest fixes for commands that are not shown when the user starts typing `/`
### validator (_default: `/^\w+$/`_)
Sets a RegEx for validating layout-converted message as a command. Allows only words by default (a-z, A-Z, 0-9, _)
### validInitiators (_default: `['/', '.', '?', '÷', '\\', '|', '«', '»']`_)
Defines the first symbol of a message that tells layoutfixer the text should be interpreted as a command.
### commands (_default: `ctx.telegram.getMyCommands()`_)
Sets the commands that count as listed (if `allowUnlistedCommands` is `false`). Gets the bot's currently specified commands by default.
## Caught a Bug?
1. [Fork](https://help.github.com/articles/fork-a-repo/) this [repository](https://github.com/artginzburg/telegraf-layoutfixer/fork) to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
2. Link the package to the global module directory: `npm link`
3. Within the Telegraf app you want to test your local development instance of telegraf-layoutfixer, just link it to the dependencies: `npm link telegraf-layoutfixer`. Instead of the default one from npm, Node.js will now use your clone of the middleware!
[telegraf]: https://www.npmjs.com/package/telegraf