mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 17:55:51 +00:00
remove logs , imporve replace msgs efficiency
This commit is contained in:
parent
8dfab316a7
commit
f5a9fe46c4
@ -55,8 +55,10 @@ const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
||||
|
||||
export const queue = new RequestQueue();
|
||||
|
||||
export const chatLimit = 40
|
||||
export const totalMsgCount = 120
|
||||
export const chatLimit = 20
|
||||
export const chatLimitHalf = 10
|
||||
|
||||
export const totalMsgCount = 60
|
||||
class ChatPage extends LitElement {
|
||||
static get properties() {
|
||||
return {
|
||||
@ -2142,7 +2144,6 @@ class ChatPage extends LitElement {
|
||||
}
|
||||
|
||||
async goToRepliedMessage(message, clickedOnMessage) {
|
||||
console.log({message})
|
||||
const findMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(message.signature)
|
||||
|
||||
if (findMessage) {
|
||||
@ -2173,9 +2174,7 @@ class ChatPage extends LitElement {
|
||||
await this.getUpdateComplete()
|
||||
|
||||
const marginElements = Array.from(this.shadowRoot.querySelector('chat-scroller').shadowRoot.querySelectorAll('message-template'))
|
||||
console.log({marginElements})
|
||||
const findMessage2 = marginElements.find((item) => item.messageObj.signature === message.signature) || marginElements.find((item) => item.messageObj.originalSignature === message.signature) || marginElements.find((item) => item.messageObj.signature === message.originalSignature) || marginElements.find((item) => item.messageObj.originalSignature === message.originalSignature)
|
||||
console.log({findMessage2}, message.signature)
|
||||
if (findMessage2) {
|
||||
findMessage2.scrollIntoView({ block: 'center' })
|
||||
}
|
||||
@ -2410,26 +2409,9 @@ class ChatPage extends LitElement {
|
||||
document.querySelector('html').setAttribute('theme', this.theme)
|
||||
})
|
||||
|
||||
// parentEpml.ready().then(() => {
|
||||
// parentEpml.subscribe('selected_address', async selectedAddress => {
|
||||
// this.selectedAddress = {}
|
||||
// selectedAddress = JSON.parse(selectedAddress)
|
||||
// if (!selectedAddress || Object.entries(selectedAddress).length === 0) return
|
||||
// this.selectedAddress = selectedAddress
|
||||
// })
|
||||
|
||||
// })
|
||||
|
||||
this.lastReadMessageTimestamp = await chatLastSeen.getItem(this.chatId) || 0
|
||||
// parentEpml.subscribe('chat_last_seen', async chatList => {
|
||||
// const parsedChatList = JSON.parse(chatList)
|
||||
// console.log({parsedChatList}, this.chatId)
|
||||
// const findChatSeen = parsedChatList.find(chat=> chat.key === this.chatId)
|
||||
// console.log({findChatSeen})
|
||||
// if(findChatSeen && this.lastReadMessageTimestamp !== findChatSeen.timestamp){
|
||||
// this.lastReadMessageTimestamp = findChatSeen.timestamp
|
||||
|
||||
// }
|
||||
// })
|
||||
|
||||
parentEpml.imReady()
|
||||
|
||||
const isEnabledChatEnter = localStorage.getItem('isEnabledChatEnter')
|
||||
@ -2528,7 +2510,6 @@ class ChatPage extends LitElement {
|
||||
}
|
||||
|
||||
renderChatScroller() {
|
||||
console.log('clearUpdateMessageHashmap', Object.keys(this.updateMessageHash).length)
|
||||
return html`
|
||||
<chat-scroller
|
||||
chatId=${this.chatId}
|
||||
@ -2623,7 +2604,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2639,7 +2619,6 @@ class ChatPage extends LitElement {
|
||||
addToUpdateMessageHashmap: this.addToUpdateMessageHashmap
|
||||
}));
|
||||
|
||||
console.log({decodeMsgs})
|
||||
|
||||
let list = [...decodeMsgs]
|
||||
|
||||
@ -2648,7 +2627,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -2685,7 +2663,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2700,7 +2677,6 @@ class ChatPage extends LitElement {
|
||||
addToUpdateMessageHashmap: this.addToUpdateMessageHashmap
|
||||
}));
|
||||
|
||||
console.log({decodeMsgs})
|
||||
|
||||
let list = [...decodeMsgs]
|
||||
|
||||
@ -2709,7 +2685,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -2745,7 +2720,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2767,7 +2741,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -2808,7 +2781,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2830,7 +2802,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -2872,7 +2843,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2895,7 +2865,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -2933,7 +2902,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -2958,7 +2926,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -3002,7 +2969,6 @@ class ChatPage extends LitElement {
|
||||
}
|
||||
|
||||
async clearUpdateMessageHashmap(){
|
||||
console.log('hello clear')
|
||||
this.updateMessageHash = {}
|
||||
this.requestUpdate()
|
||||
}
|
||||
@ -3046,7 +3012,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
this.webWorkerDecodeMessages.onerror = e => {
|
||||
console.log('e',e)
|
||||
rej()
|
||||
|
||||
}
|
||||
@ -3078,7 +3043,6 @@ class ChatPage extends LitElement {
|
||||
this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
this.webWorkerSortMessages.onmessage = e => {
|
||||
console.log('e',e)
|
||||
|
||||
list = e.data
|
||||
res()
|
||||
@ -3141,23 +3105,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// let list = [...this.messagesRendered]
|
||||
|
||||
// await new Promise((res, rej) => {
|
||||
|
||||
// this.webWorkerSortMessages.postMessage({list});
|
||||
|
||||
// this.webWorkerSortMessages.onmessage = e => {
|
||||
// console.log('e',e)
|
||||
|
||||
// list = e.data
|
||||
// res()
|
||||
|
||||
// }
|
||||
// })
|
||||
|
||||
// this.messagesRendered = list
|
||||
}
|
||||
}
|
||||
|
||||
@ -3329,27 +3276,24 @@ class ChatPage extends LitElement {
|
||||
let isUnread = false
|
||||
|
||||
const chatId = this.chatId
|
||||
console.log('this.chatHeads', this.chatHeads)
|
||||
const findContent = this.chatHeads.find((item)=> item.url === chatId)
|
||||
const chatInfoTimestamp = findContent.timestamp || 0
|
||||
const lastReadMessageTimestamp = this.lastReadMessageTimestamp
|
||||
|
||||
console.log({lastReadMessageTimestamp, chatInfoTimestamp})
|
||||
|
||||
if(lastReadMessageTimestamp && chatInfoTimestamp){
|
||||
if(lastReadMessageTimestamp < chatInfoTimestamp){
|
||||
isUnread = true
|
||||
}
|
||||
}
|
||||
console.log({isUnread})
|
||||
if(isUnread){
|
||||
const getInitialMessagesBefore = await parentEpml.request('apiCall', {
|
||||
type: 'api',
|
||||
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=${20}&reverse=true&before=${lastReadMessageTimestamp}&haschatreference=false&encoding=BASE64`
|
||||
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=${chatLimitHalf}&reverse=true&before=${lastReadMessageTimestamp}&haschatreference=false&encoding=BASE64`
|
||||
})
|
||||
const getInitialMessagesAfter = await parentEpml.request('apiCall', {
|
||||
type: 'api',
|
||||
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=${20}&reverse=false&after=${lastReadMessageTimestamp - 1000}&haschatreference=false&encoding=BASE64`
|
||||
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=${chatLimitHalf}&reverse=false&after=${lastReadMessageTimestamp - 1000}&haschatreference=false&encoding=BASE64`
|
||||
})
|
||||
getInitialMessages = [...getInitialMessagesBefore, ...getInitialMessagesAfter]
|
||||
} else {
|
||||
@ -3450,27 +3394,24 @@ class ChatPage extends LitElement {
|
||||
let isUnread = false
|
||||
|
||||
const chatId = this.chatId
|
||||
console.log('this.chatHeads', this.chatHeads)
|
||||
const findContent = this.chatHeads.find((item)=> item.url === chatId)
|
||||
const chatInfoTimestamp = findContent.timestamp || 0
|
||||
console.log({lastReadMessageTimestamp, chatInfoTimestamp})
|
||||
|
||||
if(lastReadMessageTimestamp && chatInfoTimestamp){
|
||||
if(lastReadMessageTimestamp < chatInfoTimestamp){
|
||||
isUnread = true
|
||||
}
|
||||
}
|
||||
console.log({isUnread}, '2')
|
||||
if(isUnread){
|
||||
|
||||
|
||||
const getInitialMessagesBefore = await parentEpml.request('apiCall', {
|
||||
type: 'api',
|
||||
url: `/chat/messages?txGroupId=${groupId}&limit=${20}&reverse=true&before=${lastReadMessageTimestamp}&haschatreference=false&encoding=BASE64`
|
||||
url: `/chat/messages?txGroupId=${groupId}&limit=${chatLimitHalf}&reverse=true&before=${lastReadMessageTimestamp}&haschatreference=false&encoding=BASE64`
|
||||
})
|
||||
const getInitialMessagesAfter = await parentEpml.request('apiCall', {
|
||||
type: 'api',
|
||||
url: `/chat/messages?txGroupId=${groupId}&limit=${20}&reverse=false&after=${lastReadMessageTimestamp - 1000}&haschatreference=false&encoding=BASE64`
|
||||
url: `/chat/messages?txGroupId=${groupId}&limit=${chatLimitHalf}&reverse=false&after=${lastReadMessageTimestamp - 1000}&haschatreference=false&encoding=BASE64`
|
||||
})
|
||||
getInitialMessages = [...getInitialMessagesBefore, ...getInitialMessagesAfter]
|
||||
} else {
|
||||
@ -4295,7 +4236,6 @@ class ChatPage extends LitElement {
|
||||
|
||||
const _computePow = async (chatBytes, isForward) => {
|
||||
const difficulty = this.balance < 4 ? 18 : 8
|
||||
console.log({difficulty})
|
||||
const path = window.parent.location.origin + '/memory-pow/memory-pow.wasm.full'
|
||||
|
||||
let worker
|
||||
|
@ -320,7 +320,6 @@ class ChatScroller extends LitElement {
|
||||
|
||||
async newListMessages(newMessages, message) {
|
||||
|
||||
console.log('sup')
|
||||
let data = []
|
||||
const copy = [...newMessages]
|
||||
copy.forEach(newMessage => {
|
||||
@ -337,7 +336,6 @@ class ChatScroller extends LitElement {
|
||||
});
|
||||
|
||||
|
||||
console.log({data})
|
||||
this.messagesToRender = data
|
||||
this.clearLoaders()
|
||||
this.requestUpdate()
|
||||
@ -355,7 +353,6 @@ class ChatScroller extends LitElement {
|
||||
async newListMessagesUnreadMessages(newMessages, message, lastReadMessageTimestamp) {
|
||||
const viewElement = this.shadowRoot.querySelector("#viewElement");
|
||||
|
||||
console.log('sup', lastReadMessageTimestamp);
|
||||
let data = [];
|
||||
const copy = [...newMessages];
|
||||
|
||||
@ -370,7 +367,6 @@ class ChatScroller extends LitElement {
|
||||
|
||||
// Check if this is the message before which the divider should be placed
|
||||
if (!dividerPlaced && newMessage.timestamp <= lastReadMessageTimestamp) {
|
||||
console.log('true true')
|
||||
newMessage.isDivider = true;
|
||||
dividerPlaced = true; // Ensure the divider is only added once
|
||||
break; // Exit once the divider is placed
|
||||
@ -390,7 +386,6 @@ class ChatScroller extends LitElement {
|
||||
}
|
||||
});
|
||||
|
||||
console.log({ data });
|
||||
this.messagesToRender = data;
|
||||
this.clearLoaders();
|
||||
this.requestUpdate();
|
||||
@ -415,7 +410,6 @@ class ChatScroller extends LitElement {
|
||||
previousScrollHeight = viewElement.scrollHeight;
|
||||
|
||||
|
||||
console.log('sup', type);
|
||||
const copy = [...this.messagesToRender]
|
||||
|
||||
for (const newMessage of newMessages) {
|
||||
@ -453,9 +447,7 @@ class ChatScroller extends LitElement {
|
||||
}
|
||||
this.messagesToRender = copy
|
||||
this.requestUpdate();
|
||||
console.log("Before waiting for updateComplete");
|
||||
await this.updateComplete;
|
||||
console.log("After waiting for updateComplete");
|
||||
|
||||
if (type === 'initial') {
|
||||
|
||||
@ -469,7 +461,6 @@ class ChatScroller extends LitElement {
|
||||
|
||||
|
||||
async prependOldMessages(oldMessages) {
|
||||
console.log('2', { oldMessages });
|
||||
if (!this.messagesToRender) this.messagesToRender = []; // Ensure it's initialized
|
||||
|
||||
let currentMessageGroup = null;
|
||||
@ -546,22 +537,9 @@ class ChatScroller extends LitElement {
|
||||
|
||||
this.messagesToRender = newMessagesToRender;
|
||||
this.requestUpdate();
|
||||
console.log('await this.updateComplete 1')
|
||||
await this.updateComplete;
|
||||
console.log('await this.updateComplete 2')
|
||||
|
||||
// Adjust scroll position based on the difference in scroll heights
|
||||
// await new Promise((res)=> {
|
||||
// setTimeout(()=> {
|
||||
// res()
|
||||
// }, 5000)
|
||||
// })
|
||||
// const newScrollHeight = viewElement.scrollHeight;
|
||||
// viewElement.scrollTop = previousScrollTop + (newScrollHeight - previousScrollHeight);
|
||||
// viewElement.scrollTop = viewElement.scrollHeight - viewElement.clientHeight;
|
||||
// const newScrollHeight = viewElement.scrollHeight;
|
||||
// viewElement.scrollTop = viewElement.scrollTop + (newScrollHeight - viewElement.scrollHeight);
|
||||
// If the user was at the bottom before the update, keep them at the bottom
|
||||
|
||||
if (isUserAtBottom) {
|
||||
viewElement.scrollTop = viewElement.scrollHeight - viewElement.clientHeight;
|
||||
} else {
|
||||
@ -583,7 +561,6 @@ class ChatScroller extends LitElement {
|
||||
const viewElement = this.shadowRoot.querySelector("#viewElement");
|
||||
previousScrollTop = viewElement.scrollTop;
|
||||
previousScrollHeight = viewElement.scrollHeight;
|
||||
console.log({updatedMessagesArray}, this.messagesToRender)
|
||||
for (let group of this.messagesToRender) {
|
||||
for (let i = 0; i < group.messages.length; i++) {
|
||||
const update = updatedMessagesArray.find(updatedMessage => ((updatedMessage.chatReference === group.messages[i].signature) || (updatedMessage.chatReference === group.messages[i].originalSignature)));
|
||||
@ -604,7 +581,6 @@ class ChatScroller extends LitElement {
|
||||
|
||||
async updated(changedProperties) {
|
||||
if (changedProperties && changedProperties.has('messages')) {
|
||||
console.log({changedProperties}, this.messages)
|
||||
if (this.messages.type === 'initial') {
|
||||
this.addNewMessages(this.messages.messages, 'initial')
|
||||
|
||||
@ -738,7 +714,6 @@ class ChatScroller extends LitElement {
|
||||
}
|
||||
|
||||
shouldUpdate(changedProperties) {
|
||||
console.log({changedProperties})
|
||||
if (changedProperties.has('isLoadingMessages')) {
|
||||
return true
|
||||
}
|
||||
@ -758,7 +733,6 @@ class ChatScroller extends LitElement {
|
||||
return true
|
||||
}
|
||||
if(changedProperties.has('messagesToRender')){
|
||||
console.log('true', this.messagesToRender)
|
||||
return true
|
||||
}
|
||||
if(changedProperties.has('isLoadingBefore')){
|
||||
@ -774,7 +748,6 @@ class ChatScroller extends LitElement {
|
||||
async getUpdateComplete() {
|
||||
await super.getUpdateComplete()
|
||||
const marginElements = Array.from(this.shadowRoot.querySelectorAll('message-template'))
|
||||
console.log({ marginElements })
|
||||
await Promise.all(marginElements.map(el => el.updateComplete))
|
||||
return true
|
||||
}
|
||||
|
@ -179,7 +179,6 @@ class Chat extends LitElement {
|
||||
}
|
||||
|
||||
render() {
|
||||
console.log('q-chat')
|
||||
return html`
|
||||
<div class="container clearfix">
|
||||
<div class="people-list" id="people-list">
|
||||
@ -470,10 +469,7 @@ class Chat extends LitElement {
|
||||
}, 60000)
|
||||
}
|
||||
|
||||
async updated(changedProperties) {
|
||||
console.log({changedProperties})
|
||||
|
||||
}
|
||||
|
||||
|
||||
clearConsole() {
|
||||
if (!isElectron()) {
|
||||
|
@ -155,125 +155,97 @@ export const replaceMessagesEdited = async ({
|
||||
return results;
|
||||
};
|
||||
|
||||
const findNewMessages = async (msg) => {
|
||||
let msgItem = msg
|
||||
const findUpdatedMessage = async (msg) => {
|
||||
let msgItem = { ...msg };
|
||||
|
||||
try {
|
||||
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
||||
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`;
|
||||
if (!isReceipient) {
|
||||
msgQuery = `&txGroupId=${msg.txGroupId}`
|
||||
msgQuery = `&txGroupId=${msg.txGroupId}`;
|
||||
}
|
||||
const response = await parentEpml.request("apiCall", {
|
||||
|
||||
// Find new messages first
|
||||
const newMsgResponse = await parentEpml.request("apiCall", {
|
||||
type: "api",
|
||||
url: `/chat/messages?chatreference=${msg.signature}&reverse=true${msgQuery}&limit=1&sender=${msg.sender}&encoding=BASE64`,
|
||||
})
|
||||
|
||||
if (response && Array.isArray(response) && response.length !== 0) {
|
||||
let responseItem = { ...response[0] }
|
||||
const decodeResponseItem = decodeMessageFunc(responseItem, isReceipient, _publicKey)
|
||||
delete decodeResponseItem.timestamp
|
||||
|
||||
});
|
||||
|
||||
if (Array.isArray(newMsgResponse) && newMsgResponse.length > 0) {
|
||||
const decodeResponseItem = decodeMessageFunc(newMsgResponse[0], isReceipient, _publicKey);
|
||||
delete decodeResponseItem.timestamp;
|
||||
|
||||
msgItem = {
|
||||
...msg,
|
||||
...msgItem,
|
||||
...decodeResponseItem,
|
||||
senderName: msg.senderName,
|
||||
sender: msg.sender,
|
||||
editedTimestamp: response[0].timestamp,
|
||||
editedTimestamp: newMsgResponse[0].timestamp,
|
||||
originalSignature: msg.signature
|
||||
}
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
return msgItem
|
||||
};
|
||||
|
||||
const findNewMessages2 = async (msg) => {
|
||||
let parsedMessageObj = msg
|
||||
try {
|
||||
parsedMessageObj = JSON.parse(msg.decodedMessage)
|
||||
} catch (error) {
|
||||
return msg
|
||||
}
|
||||
let msgItem = msg
|
||||
try {
|
||||
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
||||
if (!isReceipient) {
|
||||
msgQuery = `&txGroupId=${msg.txGroupId}`
|
||||
|
||||
// Then check and find replies in the same iteration
|
||||
let parsedMessageObj;
|
||||
try {
|
||||
parsedMessageObj = JSON.parse(msg.decodedMessage);
|
||||
} catch (error) {
|
||||
// If parsing fails, return the msgItem as is
|
||||
return msgItem;
|
||||
}
|
||||
|
||||
if (parsedMessageObj.repliedTo) {
|
||||
let originalReply
|
||||
let originalReply;
|
||||
if(+parsedMessageObj.version > 2){
|
||||
originalReply = await parentEpml.request("apiCall", {
|
||||
type: "api",
|
||||
url: `/chat/message/${parsedMessageObj.repliedTo}?encoding=BASE64`,
|
||||
})
|
||||
}
|
||||
if(+parsedMessageObj.version < 3){
|
||||
url: `/chat/message/${parsedMessageObj.repliedTo}?encoding=BASE64`,
|
||||
});
|
||||
} else {
|
||||
originalReply = await parentEpml.request("apiCall", {
|
||||
type: "api",
|
||||
url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}&encoding=BASE64`,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null
|
||||
|
||||
const response = await parentEpml.request("apiCall", {
|
||||
url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}&encoding=BASE64`,
|
||||
});
|
||||
}
|
||||
|
||||
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length > 0 ? originalReply[0] : null;
|
||||
|
||||
const replyResponse = await parentEpml.request("apiCall", {
|
||||
type: "api",
|
||||
url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}&limit=1&sender=${originalReplyMessage.sender}&encoding=BASE64`,
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
|
||||
if (
|
||||
originalReplyMessage &&
|
||||
response &&
|
||||
Array.isArray(response) &&
|
||||
response.length !== 0
|
||||
Array.isArray(replyResponse) &&
|
||||
replyResponse.length !== 0
|
||||
) {
|
||||
const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey)
|
||||
|
||||
const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey)
|
||||
const formattedRepliedToData = {
|
||||
const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey);
|
||||
const decodeUpdatedReply = decodeMessageFunc(replyResponse[0], isReceipient, _publicKey);
|
||||
|
||||
msgItem.repliedToData = {
|
||||
...decodeUpdatedReply,
|
||||
senderName: decodeOriginalReply.senderName,
|
||||
sender: decodeOriginalReply.sender,
|
||||
}
|
||||
msgItem = {
|
||||
...msg,
|
||||
repliedToData: formattedRepliedToData,
|
||||
}
|
||||
} else {
|
||||
|
||||
|
||||
if (
|
||||
originalReplyMessage
|
||||
) {
|
||||
msgItem = {
|
||||
...msg,
|
||||
repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
|
||||
}
|
||||
}
|
||||
};
|
||||
} else if (originalReplyMessage) {
|
||||
msgItem.repliedToData = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// Handle or log the error gracefully
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
|
||||
return msgItem
|
||||
|
||||
return msgItem;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
const sortedMessages = decodedMessages.sort((a, b) => b.timestamp - a.timestamp);
|
||||
|
||||
// Execute the functions with concurrency limit
|
||||
const updateMessages = await executeWithConcurrencyLimit(sortedMessages, findNewMessages);
|
||||
const updateMessages2 = await executeWithConcurrencyLimit(updateMessages.filter(item => item !== 'null' && item !== null), findNewMessages2);
|
||||
|
||||
addToUpdateMessageHashmap(updateMessages2)
|
||||
|
||||
|
||||
return updateMessages2;
|
||||
|
||||
// Execute the functions with concurrency limit
|
||||
const updatedMessages = await executeWithConcurrencyLimit(sortedMessages, findUpdatedMessage);
|
||||
addToUpdateMessageHashmap(updatedMessages);
|
||||
|
||||
return updatedMessages;
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user