import TelegramBot from 'node-telegram-bot-api'; import debug from 'debug'; var log = debug('durov'); import config from 'config'; import { formatQuote, formatTitle } from './common/MessageUtils'; import { format } from '../src/utils/embed'; const bot_token = config.get('service.durov.token'); const sender = new TelegramBot(bot_token); const demouser = config.get('service.durov.demouser'); sender.setWebHook(`${config.get('service.baseURL')}/api/${bot_token}`).then(() => { log('Webhook is set'); }).catch(console.log); sender.on('message', msg => { log(`MESSAGE: ${JSON.stringify(msg)}`); }); export const webhook = (req, res) => { sender.processUpdate(JSON.parse(req.body)); res.sendStatus(200); }; /** * @param {import('../src/api').Message} msg * @param {string[]} subscribers */ export const sendTelegramNotification = (msg, subscribers) => { log(`Telegram event: ${JSON.stringify(msg)}, ${subscribers} ${subscribers.length}`); if (!msg.service) { if (subscribers && subscribers.includes(demouser)) { const message = `${formatTitle(msg)}\n${formatQuote(msg)}\n${format(msg.body, msg.uid, false)}`; log(message); sender.sendMessage(demouser, message, { parse_mode: 'HTML', disable_web_page_preview: true }).then(log).catch(log); } } };