/** * check if message is PM * @param {import('../../src/api').Message} msg message */ export function isPM(msg) { return !msg.mid } /** * check if message is reply * @param {import('../../src/api').Message} msg message */ export function isReply(msg) { return msg.rid && msg.rid > 0 } /** * check if message is service one * @param {import('../../src/api').Message} msg message */ export function isService(msg) { return msg.service && msg.service } /** * format notification title * @param {import('../../src/api').Message} msg message * @returns {string} formatted title */ export function formatTitle(msg) { if (isReply(msg)) { return `Reply by ${msg.user.uname}:` } else if (isPM(msg)) { return `Private message from ${msg.user.uname}:` } return `${msg.user.uname}` } /** * format notification quote * @param { import('../../src/api').Message } msg message * @param { boolean } isDurov format to Telegram markup * @returns {string} formatted quote line */ export function formatQuote(msg, isDurov = false) { if (isReply(msg)) { return msg.replyQuote ? isDurov ? `
${msg.replyQuote.substring(1)}
` : msg.replyQuote : '' } else if (isPM(msg)) { return '' } return (msg.tags || []).map(t => `*${t}`).join(', ') } /** * format notification body * @param {import('../../src/api').Message} msg message * @returns {string} formatted body */ export function formatMessage(msg) { return msg.body || 'Sent an image' } const baseURL = 'https://juick.com' /** * @param {import('../api').Message} msg message */ export function formatUrl(msg) { if (isReply(msg)) { return `${baseURL}/m/${msg.mid}#${msg.rid}` } else if (isPM(msg)) { return `${baseURL}/pm/inbox` } return `${baseURL}/m/${msg.mid}` }