telegraf-layoutfixer

Layout fixing middleware for Telegram bots

Usage no npm install needed!

<script type="module">
  import telegrafLayoutfixer from 'https://cdn.skypack.dev/telegraf-layoutfixer';
</script>

README

telegraf-layoutfixer

Dependencies npm

Suggests layout typo fixes in Telegram chats (.рудз => /help)

Quick start

First, run npm i telegraf-layoutfixer. Then, in your Telegraf app:

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

preview

Options

Defaults are shown below:

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 this repository to your own GitHub account and then clone 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!