/** * 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 * @returns {string} formatted quote line */ export function formatQuote(msg) { if (isReply(msg)) { return 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}`; }