slimbot

    5.1.0 • Public • Published

    Build Status Coverage Status MIT licensed

    Slimbot

    A fuss-free, thin wrapper around Telegram Bot API for Node.js. No frills.

    Updated for Telegram Bot API 5.1. Works with Node 15.12.0. Runs on latest Node version 15.12.0. Tested on 10.16.0 and 12.10.0 as well.

    Note: Slimbot patch versions (e.g. x.y.Z) do not track or reflect Telegram Bot API changes.

    Resources

    Getting started

    npm i slimbot
    const Slimbot = require('slimbot');
    const slimbot = new Slimbot('123456789:AA...');
    
    // Register listeners
    
    slimbot.on('message', message => {
      slimbot.sendMessage(message.chat.id, 'Message received');
    });
    
    // Call API
    
    slimbot.startPolling();

    Now go ahead and type a message to your bot in Telegram. It should reply you with 'Message received' in the chat. Check out all other events you can listen to in the wiki.

    How it works

    All methods return a promise. This means you can inspect the returned objects if you want to:

    slimbot.sendMessage('123456789', 'Message received')
      .then(message => {
        console.log(message);
      });

    In this case, the sendMessage method returns a Message object as stated in the documentation.

    You can also use callbacks instead of promises:

    const Slimbot = require('./src/slimbot');
    const slimbot = new Slimbot(process.env['TELEGRAM_BOT_TOKEN']);
    
    function callback(err, obj) {
      if (err) {
        // handle error
        console.log(obj);
      }
      // handle returned object
      console.log(obj);
    };
    
    slimbot.on('message', message => {
      slimbot.sendMessage(message.chat.id, 'Message received', callback);
    });
    
    slimbot.startPolling(callback);

    Examples

    Documentation (Wiki)

    Learn more about the implementation details in the Wiki. Feel free to contribute to the Wiki or add more examples.

    Contributing

    Heartfelt thanks to the following folks for making Slimbot better: @lgg @ago @rpaskin @matteocontrini @jakimenko @nahanil

    The guiding principle for this library is to be as simple as possible. I put serious thought into adding features to guard against bloat. Nonetheless, I am very open to dialogue and contributions are most welcome.

    If you have built a public bot using this library, send me a PM and I'll feature it here.

    Install

    npm i slimbot

    DownloadsWeekly Downloads

    221

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    275 kB

    Total Files

    19

    Last publish

    Collaborators

    • edisonchee