const fetch = require('node-fetch');
const Papa = require('papaparse');
const TelegramBot = require('node-telegram-bot-api');
// Konfigurasi bot Telegram
const token = 'YOUR_TELEGRAM_BOT_API_TOKEN'; // Ganti dengan token bot Anda
const bot = new TelegramBot(token, { polling: true });
// URL ekspor CSV dari Google Spreadsheet
const DOC_ID = 'YOUR_GOOGLE_SHEET_DOC_ID'; // Ganti dengan DOCID spreadsheet Anda
const CSV_URL = `https://docs.google.com/spreadsheets/d/${DOC_ID}/export?format=csv`;
// Fungsi untuk mengambil dan memparse CSV
async function fetchData() {
try {
// Mengambil data CSV dari URL
const response = await fetch(CSV_URL);
const csvText = await response.text();
// Mengonversi CSV ke format JSON
const result = Papa.parse(csvText, {
header: true, // Menandakan bahwa baris pertama adalah header
skipEmptyLines: true, // Mengabaikan baris kosong
});
// Mengembalikan data hasil parsing
return result.data;
} catch (error) {
console.error('Error fetching or parsing CSV:', error);
return [];
}
}
// Fungsi untuk mengirim data ke Telegram
async function sendDataToTelegram(chatId, data) {
let message = 'Data dari Google Spreadsheet (CSV):\n\n';
data.forEach((row) => {
message += `${row['Nama']} - ${row['Nomor Telepon']}\n`; // Ganti dengan nama kolom yang sesuai
});
bot.sendMessage(chatId, message);
}
// Mendengarkan perintah dari bot Telegram
bot.onText(/\/getdata/, async (msg) => {
const chatId = msg.chat.id;
const data = await fetchData();
if (data.length > 0) {
await sendDataToTelegram(chatId, data);
} else {
bot.sendMessage(chatId, 'Tidak ada data yang ditemukan.');
}
});
console.log('Bot is running...');