diff --git a/frontend/composables/useApi.js b/frontend/composables/useApi.js index 97e739f..9c4aa57 100644 --- a/frontend/composables/useApi.js +++ b/frontend/composables/useApi.js @@ -69,6 +69,7 @@ export const useApi = () => { if (params && params.limit != null) query.set('limit', String(params.limit)) if (params && params.include_hidden != null) query.set('include_hidden', String(!!params.include_hidden)) if (params && params.include_official != null) query.set('include_official', String(!!params.include_official)) + if (params && params.source) query.set('source', params.source) const url = '/chat/sessions' + (query.toString() ? `?${query.toString()}` : '') return await request(url) } @@ -81,10 +82,39 @@ export const useApi = () => { if (params && params.offset != null) query.set('offset', String(params.offset)) if (params && params.order) query.set('order', params.order) if (params && params.render_types) query.set('render_types', params.render_types) + if (params && params.source) query.set('source', params.source) const url = '/chat/messages' + (query.toString() ? `?${query.toString()}` : '') return await request(url) } + const getChatRealtimeStatus = async (params = {}) => { + const query = new URLSearchParams() + if (params && params.account) query.set('account', params.account) + const url = '/chat/realtime/status' + (query.toString() ? `?${query.toString()}` : '') + return await request(url) + } + + const syncChatRealtimeMessages = async (params = {}) => { + const query = new URLSearchParams() + if (params && params.account) query.set('account', params.account) + if (params && params.username) query.set('username', params.username) + if (params && params.max_scan != null) query.set('max_scan', String(params.max_scan)) + const url = '/chat/realtime/sync' + (query.toString() ? `?${query.toString()}` : '') + return await request(url, { method: 'POST' }) + } + + const syncChatRealtimeAll = async (params = {}) => { + const query = new URLSearchParams() + if (params && params.account) query.set('account', params.account) + if (params && params.max_scan != null) query.set('max_scan', String(params.max_scan)) + if (params && params.priority_username) query.set('priority_username', params.priority_username) + if (params && params.priority_max_scan != null) query.set('priority_max_scan', String(params.priority_max_scan)) + if (params && params.include_hidden != null) query.set('include_hidden', String(!!params.include_hidden)) + if (params && params.include_official != null) query.set('include_official', String(!!params.include_official)) + const url = '/chat/realtime/sync_all' + (query.toString() ? `?${query.toString()}` : '') + return await request(url, { method: 'POST' }) + } + const searchChatMessages = async (params = {}) => { const query = new URLSearchParams() if (params && params.account) query.set('account', params.account) @@ -250,6 +280,9 @@ export const useApi = () => { listChatAccounts, listChatSessions, listChatMessages, + getChatRealtimeStatus, + syncChatRealtimeMessages, + syncChatRealtimeAll, searchChatMessages, getChatSearchIndexStatus, buildChatSearchIndex, diff --git a/frontend/pages/chat/[[username]].vue b/frontend/pages/chat/[[username]].vue index 595f2eb..69effc8 100644 --- a/frontend/pages/chat/[[username]].vue +++ b/frontend/pages/chat/[[username]].vue @@ -150,6 +150,18 @@ 刷新 +