'use strict'; const millisecond = require('millisecond'); const { telegram } = require('../bot'); const R = require('ramda'); const isCommand = R.pipe( R.defaultTo({}), R.path([ 'entities', 0 ]), R.defaultTo({}), R.whereEq({ offset: 0, type: 'bot_command' }), ); const escapeHtml = s => s .replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(/ `https://t.me/c/${msg.chat.id.toString().slice(4)}/${msg.message_id}`; const link = ({ id, first_name }) => `${escapeHtml(first_name)}`; const quietLink = (user) => user.username ? `${escapeHtml(user.first_name)}` : link(user); const displayUser = user => user.first_name ? link(user) : `an user with id ${user.id}`; /** * @param {number} ms * Deletes messages after (ms) milliseconds * @returns {undefined} */ const deleteAfter = ms => (ctx, next) => { setTimeout(ctx.deleteMessage, ms); next(); }; const scheduleDeletion = (ms = 5 * 60 * 1000) => message => { const { chat, message_id } = message; if (chat.type !== 'private' && ms !== false) { message.timeout = setTimeout( () => telegram.deleteMessage(chat.id, message_id), millisecond(ms) ); } return message; }; module.exports = { deleteAfter, displayUser, escapeHtml, isCommand, link, msgLink, quietLink, scheduleDeletion, };