OverviewFilesCommitsIssuesDocsReleasesPeers

keet-daemon / lib / format.js

39 lines · javascript ref:
export function getGenericEventName (code) {
  const events = {
    1: 'MEMBER_JOINED',
    2: 'CALL_STARTED',
    3: 'AVATAR_CHANGED',
    4: 'INVITATION_CREATED',
    5: 'MEMBER_LEFT',
    6: 'TITLE_CHANGED',
    7: 'MEMBER_REMOVED',
    8: 'CALL_HANGUP',
    9: 'CALL_MISSED'
  }
  return events[code] || `EVENT_${code}`
}

export function formatMessage (msg) {
  const time = msg.timestamp ? new Date(msg.timestamp).toLocaleTimeString() : '??:??'
  const sender = msg.memberId || 'unknown'
  const text = msg.chat?.text || msg.text || msg.message?.text || ''
  const deleted = msg.deleted ? ' [DELETED]' : ''
  const isSystem = msg.message?.generic ? ` [${getGenericEventName(msg.message.generic)}]` : ''
  if (!text && !isSystem) return null
  return `[${time}] ${sender}: ${text}${deleted}${isSystem}`
}

export function formatChatEvent (event) {
  if (!event) return null
  if (event.chat) {
    const time = event.timestamp ? new Date(event.timestamp).toLocaleTimeString() : '??:??'
    const sender = event.memberId || 'unknown'
    const text = event.chat.text || ''
    const deleted = event.deleted ? ' [DELETED]' : ''
    return `[${time}] ${sender}: ${text}${deleted}`
  } else if (event.message?.generic) {
    return `[system] ${getGenericEventName(event.message.generic)}`
  }
  return `[event] ${JSON.stringify(event)}`
}