0.1.28 • Published 11 months ago

telegram-lite v0.1.28

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
11 months 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

11 months ago

0.1.27

11 months ago

0.1.26

11 months ago

0.1.25

11 months ago

0.1.24

11 months ago

0.1.23

11 months ago

0.1.22

11 months ago

0.1.21

11 months ago

0.1.20

11 months ago

0.1.19

11 months ago

0.1.18

11 months ago

0.1.17

11 months ago

0.1.16

11 months ago

0.1.15

11 months ago

0.1.14

11 months ago

0.1.13

11 months ago

0.1.12

11 months ago

0.1.11

11 months ago

0.1.10

11 months ago

0.1.9

11 months ago

0.1.8

11 months ago

0.1.7

11 months ago

0.1.6

11 months ago

0.1.5

11 months ago

0.1.4

11 months ago

0.1.3

11 months ago

0.1.2

11 months ago

0.1.1

11 months ago

0.1.0

11 months ago