0.1.28 • Published 2 years ago

telegram-lite v0.1.28

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
2 years ago

Telegram-Lite

TelegramLite class inherits all node-telegram-bot-api methods

The telegram-lite module provides an easier way to use Telegram than the native API. It offers several convenient features:

  • The callbackQuery now accepts a callback function instead of callback_data.
  • When a message, callback query, or other event is caught in the onMessage listener, it provides additional methods such as answer, reply, copy, and forward.
  • It includes a private chats method called input that waits for user input, which can be easily canceled by chatId.
  • Command handlers for messages automatically handle specified commands.

❗️ For now each session will lose previous context of input and callbackQuery, in future it should be wrapper functions that do all the job.

Installation

npm install -S telegram-lite

Usage Example

import TelegramLite from 'telegram-lite';

const telegramLite = new TelegramLite('<YOUR_TOKEN>');

telegramLite.addMessageCommands([
  {
    text: '/start',
    callback: (context, message) => {
      // Send an answer in the same chat
      message.answer({
        text: 'Welcome to Telegram Lite bot!',
        reply_markup: {
          // Provide keyboard with callback function
          inline_keyboard: [
            [
              {
                text: 'Click me!',
                callback: (context, query) => {
                  // Send a message to the same chat
                  message.reply({ text: 'You clicked me!' });
                }
              }
            ]
          ]
        }
      });

      // Reply to the handled message
      message.reply({ text: 'Your message was successfully handled' });

      // Forward the handled message to a specific chat
      message.forward({ chat_id: -1111111 });

      // Copy the handled message to a specific chat
      message.copy({ chat_id: -1111111 });
    }  
  }
]);

To wait for input

telegramLite.input({
   text: "Hi! I'm waiting for your response"
}, {
  callback: (context, message) => {
    // Return true to stop waiting for the user's response
    // or false to continue waiting
    if (message.text === 'hi') {
      return true;
    }
    return false;
  }
});

Middlewares

You can provide your own middlewares, and their results will be sent to the context in all your callbacks.

const telegramLite = new TelegramLite('<YOUR_TOKEN>', {
  middlewares: [
    async (context, data) => {
      return {
        ...context,
        user: await getUser(context, data.from.id),
      };
    }
  ]
});

telegramLite.addCommandListener({
  text: '/start',
  callback: (context, message) => {
    message.reply({
      text: `Hi, ${context.user.name}!`,
    });
  }
});

License

This module is licensed under the MIT License.

0.1.28

2 years ago

0.1.27

2 years ago

0.1.26

2 years ago

0.1.25

2 years ago

0.1.24

2 years ago

0.1.23

2 years ago

0.1.22

2 years ago

0.1.21

2 years ago

0.1.20

2 years ago

0.1.19

2 years ago

0.1.18

2 years ago

0.1.17

2 years ago

0.1.16

2 years ago

0.1.15

2 years ago

0.1.14

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago