npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nk-ntba

v2.1.7

Published

Telegram bot api library for NodeJS. Developer's telegram: @NekitKuzmenko

Downloads

9

Readme

Bot authorization:

const Bot = require('nk-ntba');

let bot = new Bot('API token of your bot');

Events for listening updates:

message
edited_message
channel_post
edited_channel_post
inline_query
chosen_inline_result
callback_query
shipping_query
pre_checkout_query
poll
poll_answer
my_chat_member
chat_member
chat_join_request
reply_to_message

For specific types of messages:

text
animation
audio
channel_chat_created
contact
delete_chat_photo
dice
document
game
group_chat_created
invoice
left_chat_member
location
migrate_from_chat_id
migrate_to_chat_id
new_chat_member
new_chat_photo
new_chat_title
passport_data
photo
pinned_message
poll
sticker
successful_payment
supergroup_chat_created
video
video_note
voice
voice_chat_started
voice_chat_ended
voice_chat_participants_invited
voice_chat_scheduled
message_auto_delete_timer_changed
chat_invite_link
chat_member_updated

To use specific types of messages in listener you should write event with prefix message. , for example message.text.

Adding a listener to some event:

bot.setCallback('your event', callback);

Removing a listener:

bot.removeCallback('your event');

Starting listener:

bot.start({
    short_polling: 500
});

or

bot.start({
    long_polling: 60
});

About polling

Webhookes are not available yet.

Stoping listener:

bot.stop();

Downloading file by file_id:

const fs = require('fs');
const Bot = require('nk-ntba');

let bot = new Bot('API token of your bot');

(async () => {

    await bot.downloadFile('your file_id', fs.createWriteStream('your file'));
    
})();

All other methods are async and need await or .then constructions (.catch is not used, promise is always resolved). You can check available methods in source code of this library.

Example of echo bot:

const Bot = require('nk-ntba');

let bot = new Bot('API token of your bot');

bot.setCallback('message.text', async (msg) => {

    let cid = msg.chat.id;
    let msgid = msg.message_id;
    let tx = msg.text;

    let r = await bot.sendMessage(cid, `You sent: ${tx}`);

    setTimeout(() => {

        bot.deleteMessage(cid, msgid);
        bot.deleteMessage(cid, r.message_id);

        bot.sendMessage(cid, `Messages were deleted after 5 sec`);

    }, 5000);

});

bot.listen({
    long_polling: 300
});