New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

node-telegram-sockets

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package version was removed
This package version has been unpublished, mostly likely due to security reasons
Malware was recently detected in this package.

Affected versions:

0.0.0-stage0.0.1-security1.1.11.1.21.1.3
+4 more

node-telegram-sockets

A customized version of node-telegram-bot-api with socket-like event handling.

unpublished
npmnpm
Version
1.1.1
Version published
Weekly downloads
85
54.55%
Maintainers
1
Weekly downloads
 
Created
Source

Node Telegram Sockets

Node Telegram Sockets adalah modifikasi kustom dari library node-telegram-bot-api yang populer, dirancang untuk menyediakan interaksi bot Telegram yang lebih intuitif dengan penanganan event bergaya 'socket'. Library ini mempertahankan fungsionalitas inti dari node-telegram-bot-api sambil memperkenalkan alias yang memudahkan pengembang yang terbiasa dengan paradigma event-driven atau socket.

Fitur Utama

  • Kompatibilitas Penuh: Membangun di atas node-telegram-bot-api, memastikan kompatibilitas dengan semua fitur dan metode API Telegram Bot.
  • Event Handling Bergaya Socket: Memperkenalkan alias connect dan send untuk metode on dan emit EventEmitter, membuat penanganan event lebih familiar bagi pengembang socket.
  • Rebranding: Nama dan namespace internal telah diperbarui menjadi node-telegram-sockets untuk mencerminkan fokus baru.
  • Fleksibel: Mendukung polling dan webhook untuk menerima pembaruan dari Telegram.

Instalasi

Untuk menginstal Node Telegram Sockets, Anda dapat menggunakan npm:

npm install node-telegram-sockets

Penggunaan

Berikut adalah contoh dasar bagaimana menggunakan Node Telegram Sockets:

const TelegramSockets = require("node-telegram-sockets");

// Ganti dengan token bot Telegram Anda
const token = "YOUR_TELEGRAM_BOT_TOKEN";

// Buat instance bot
const bot = new TelegramSockets(token, { polling: true });

// Menggunakan alias 'connect' untuk mendengarkan pesan
bot.connect("message", (msg) => {
  const chatId = msg.chat.id;
  bot.sendMessage(chatId, "Halo dari Node Telegram Sockets!");
});

// Contoh penggunaan alias 'send' (untuk event kustom)
bot.connect("custom_event", (data) => {
  console.log("Menerima event kustom:", data);
});

// Memicu event kustom
bot.send("custom_event", { user: "John Doe", action: "test" });

// Mendengarkan event 'socket:message' yang baru
bot.connect("socket:message", ({ data, metadata }) => {
  console.log("Menerima pesan melalui socket-like event:", data.text);
  // Anda bisa memproses data dan metadata di sini
});

// Contoh penanganan perintah
bot.onText(/\/start/, (msg) => {
  bot.sendMessage(msg.chat.id, "Selamat datang!\nKetik /echo [pesan Anda] untuk mengulang pesan.");
});

bot.onText(/\/echo (.+)/, (msg, match) => {
  const chatId = msg.chat.id;
  const resp = match[1];
  bot.sendMessage(chatId, resp);
});

// Penanganan error
bot.on("polling_error", (error) => {
  console.error("Polling error:", error);
});

Perubahan dari node-telegram-bot-api

  • Kelas utama telah diganti namanya dari TelegramBot menjadi TelegramSockets.
  • Namespace debug telah diperbarui dari node-telegram-bot-api menjadi node-telegram-sockets.
  • Alias connect(event, listener) ditambahkan sebagai pengganti on(event, listener).
  • Alias send(event, ...args) ditambahkan sebagai pengganti emit(event, ...args).
  • Event baru socket:message ditambahkan, yang memancarkan objek { data, metadata } untuk setiap pesan yang diterima, memungkinkan penanganan event yang lebih terstruktur.
  • Sistem Middleware: Mendukung penggunaan middleware via .use((msg, next) => { ... }).
  • Manajemen Sesi: Akses sesi pengguna langsung melalui msg.session.
  • Auto-Retry Rate Limit: Menangani error 429 (Too Many Requests) secara otomatis jika opsi rateLimit: true diaktifkan.
  • Media Helper: Mengirim album foto dengan mudah menggunakan .sendAlbum(chatId, [path1, path2]).
  • Smart Broadcast System: Mengirim pesan massal dengan antrean otomatis dan laporan status.
  • Fluent Keyboard Builder: Membuat tombol dengan gaya, emoji kustom, dan alur kerja yang lancar.

Fitur Lanjutan

1. Middleware

Anda dapat menambahkan fungsi yang akan dijalankan sebelum event handler utama:

bot.use((msg, next) => {
  console.log(`Pesan dari ${msg.from.username}: ${msg.text}`);
  // Lanjutkan ke middleware berikutnya atau handler utama
  next();
});

2. Session Management

Setiap pesan secara otomatis memiliki objek sesi yang persisten di memori:

bot.connect("message", (msg) => {
  if (!msg.session.counter) msg.session.counter = 0;
  msg.session.counter++;
  bot.sendMessage(msg.chat.id, `Anda telah mengirim ${msg.session.counter} pesan.`);
});

3. Auto-Retry Rate Limit

Aktifkan penanganan batas permintaan Telegram secara otomatis:

const bot = new TelegramSockets(token, { 
  polling: true,
  rateLimit: true // Aktifkan fitur ini
});

4. Send Album Helper

Kirim beberapa foto sekaligus dengan satu baris kode:

bot.sendAlbum(chatId, [
  './assets/photo1.jpg',
  './assets/photo2.png'
]);

5. Smart Broadcast System

Kirim pesan ke banyak pengguna sekaligus dengan aman:

const userIds = [123456, 789012, 345678];
bot.broadcast(userIds, "Halo semuanya! Ini adalah pesan siaran.")
  .then(report => {
    console.log(`Total: ${report.total}`);
    console.log(`Berhasil: ${report.success}`);
    console.log(`Diblokir: ${report.blocked}`);
    console.log(`Gagal: ${report.failed}`);
  });

6. Fluent Keyboard Builder

Membuat tombol inline dengan gaya dan emoji kustom jadi lebih mudah:

const keyboard = bot.keyboard('inline')
  .url("Owner Script", "https://t.me/xrelly", { 
    style: "danger", 
    icon_custom_emoji_id: "6213063926200933195" 
  })
  .url("Channel Owner", "https://t.me/jspacker", { 
    style: "success", 
    icon_custom_emoji_id: "5328034993727889277" 
  })
  .row()
  .callback("Bantuan", "help_data", { style: "primary" })
  .build();

bot.sendMessage(chatId, "Pilih menu:", { reply_markup: keyboard });

7. Penggunaan rich_message pada library

Membuat menu pada bot kalian menjadi lebih bagus dan bergaya.

Mendengarkan event rich_message :

bot.on('rich_message', (msg) => {
    console.log('Get rich_message:', msg.rich_message);
});

Cara kirim rich_message

const richMessage = {
    blocks: [
        {
            type: "heading",
            text: "Hello world!!!",
            size: 1
        }
    ]
}

bot.sendRichMessage(chatId, richMessage);

Kontribusi

Kami menyambut kontribusi! Jika Anda memiliki ide untuk fitur baru, perbaikan bug, atau peningkatan, silakan buka isu atau kirim pull request di repositori GitHub.

Lisensi

Library ini dilisensikan di bawah Lisensi MIT. Lihat file LICENSE.md untuk detail lebih lanjut.

Keywords

telegram

FAQs

Package last updated on 28 Jun 2026

Related posts