@onyx-p/imlib-web 2.4.5 → 2.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +130 -110
- package/index.umd.js +130 -110
- package/package.json +1 -1
package/index.esm.js
CHANGED
@@ -19491,24 +19491,28 @@ class DialogSecretKey {
|
|
19491
19491
|
if (!dialogIdList.length) {
|
19492
19492
|
return new Map();
|
19493
19493
|
}
|
19494
|
-
|
19495
|
-
|
19496
|
-
|
19497
|
-
|
19498
|
-
|
19499
|
-
|
19500
|
-
|
19501
|
-
const
|
19502
|
-
|
19503
|
-
|
19504
|
-
|
19505
|
-
|
19506
|
-
|
19507
|
-
|
19508
|
-
|
19494
|
+
try {
|
19495
|
+
const {
|
19496
|
+
code,
|
19497
|
+
data
|
19498
|
+
} = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
|
19499
|
+
if (code === ErrorCode.SUCCESS) {
|
19500
|
+
const content = new Map();
|
19501
|
+
for (const k in data.entry) {
|
19502
|
+
const v = data.entry[k];
|
19503
|
+
if (v.aesKey?.length && v.aesIV?.length) {
|
19504
|
+
const keyItem = {
|
19505
|
+
key: v.aesKey,
|
19506
|
+
iv: v.aesIV
|
19507
|
+
};
|
19508
|
+
content.set(k, keyItem);
|
19509
|
+
this.aesKeyRecord.set(k, keyItem);
|
19510
|
+
}
|
19509
19511
|
}
|
19512
|
+
return content;
|
19510
19513
|
}
|
19511
|
-
|
19514
|
+
} catch (error) {
|
19515
|
+
logger.error('getDialogAesKeyListFromRemote error', error);
|
19512
19516
|
}
|
19513
19517
|
return new Map();
|
19514
19518
|
}
|
@@ -20435,15 +20439,22 @@ function parse(orginalMsgs, callback) {
|
|
20435
20439
|
}
|
20436
20440
|
const remainDialogIds = new Set([...msgs.keys()]);
|
20437
20441
|
DialogSecretKey$1.getDialogAesKeyListInBatches([...msgs.keys()], (remote, aesKeys) => {
|
20438
|
-
|
20439
|
-
|
20440
|
-
|
20441
|
-
|
20442
|
+
try {
|
20443
|
+
if (aesKeys.size) {
|
20444
|
+
const dialogIds = [...aesKeys.keys()];
|
20445
|
+
for (const k of dialogIds) {
|
20446
|
+
remainDialogIds.delete(k);
|
20447
|
+
}
|
20448
|
+
callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
|
20449
|
+
}
|
20450
|
+
if (remainDialogIds.size && remote) {
|
20451
|
+
callback(true, new Map());
|
20452
|
+
}
|
20453
|
+
} catch (error) {
|
20454
|
+
logger.error('parseDialogsMessages error', error);
|
20455
|
+
if (remainDialogIds.size && remote) {
|
20456
|
+
callback(true, new Map());
|
20442
20457
|
}
|
20443
|
-
callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
|
20444
|
-
}
|
20445
|
-
if (remainDialogIds.size && remote) {
|
20446
|
-
callback(true, new Map());
|
20447
20458
|
}
|
20448
20459
|
});
|
20449
20460
|
}
|
@@ -20506,7 +20517,11 @@ const parseSingleDialogMessages = (dialogId, originalMessageList, aesKey) => {
|
|
20506
20517
|
if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
|
20507
20518
|
return;
|
20508
20519
|
}
|
20509
|
-
|
20520
|
+
if (notEmptyString(receivedMessage.messageUId)) {
|
20521
|
+
contentList.push(receivedMessage);
|
20522
|
+
} else {
|
20523
|
+
logger.error('message is invalid', item);
|
20524
|
+
}
|
20510
20525
|
}
|
20511
20526
|
});
|
20512
20527
|
return contentList;
|
@@ -21428,100 +21443,108 @@ class MessageLoader {
|
|
21428
21443
|
});
|
21429
21444
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21430
21445
|
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21431
|
-
|
21432
|
-
|
21433
|
-
|
21434
|
-
|
21435
|
-
|
21436
|
-
|
21437
|
-
|
21438
|
-
|
21439
|
-
|
21440
|
-
|
21441
|
-
|
21442
|
-
} else {
|
21443
|
-
|
21444
|
-
}
|
21445
|
-
|
21446
|
-
m.isOffLineMessage = isOffLineMessage;
|
21447
|
-
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21448
|
-
m.messageId = generateNewMessageId();
|
21449
|
-
}
|
21450
|
-
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21451
|
-
messageList.push(m);
|
21452
|
-
if (m.messageType === MessageTypes.RECALL) {
|
21453
|
-
recallMessageIndexes.push(messageList.length - 1);
|
21446
|
+
try {
|
21447
|
+
this.processMessages(outputMsgs, !this.pullOfflineFinished);
|
21448
|
+
} catch (error) {
|
21449
|
+
logger.error('processMessages error', error);
|
21450
|
+
}
|
21451
|
+
if (done) {
|
21452
|
+
try {
|
21453
|
+
let seqNo_long;
|
21454
|
+
if (seqno) {
|
21455
|
+
if (Long.isLong(seqno)) {
|
21456
|
+
seqNo_long = seqno;
|
21457
|
+
} else if (typeof seqno === 'string') {
|
21458
|
+
seqNo_long = Long.fromString(seqno);
|
21459
|
+
} else if (typeof seqno === 'number') {
|
21460
|
+
seqNo_long = Long.fromNumber(seqno);
|
21454
21461
|
}
|
21462
|
+
}
|
21463
|
+
if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
|
21464
|
+
this.serverMsgSeqno = seqNo_long;
|
21465
|
+
}
|
21466
|
+
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21467
|
+
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21468
|
+
this.letterbox?.setInboxOffset(offset);
|
21469
|
+
this.pullingMsg = false;
|
21470
|
+
if (isFinished && !this.pullOfflineFinished) {
|
21471
|
+
this.pullOfflineFinished = true;
|
21472
|
+
this.watcher.pullFinished && this.watcher.pullFinished();
|
21473
|
+
}
|
21474
|
+
if (!isFinished) {
|
21475
|
+
this.pullMsg();
|
21476
|
+
}
|
21477
|
+
} catch (error) {
|
21478
|
+
logger.error('setPullMsgDone error', error);
|
21479
|
+
this.pullingMsg = false;
|
21480
|
+
}
|
21481
|
+
}
|
21482
|
+
});
|
21483
|
+
}
|
21484
|
+
processMessages(outputMsgs, isOffLineMessage) {
|
21485
|
+
const messages = [];
|
21486
|
+
let recallMessageUIds = [];
|
21487
|
+
outputMsgs.forEach((l, dialogId) => {
|
21488
|
+
let messageList = [];
|
21489
|
+
const recallMessageIndexes = [];
|
21490
|
+
l.forEach(m => {
|
21491
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21492
|
+
if (m.content.messageUId) {
|
21493
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21494
|
+
recallMessageUIds.push(m.content.messageUId);
|
21455
21495
|
} else {
|
21456
|
-
logger.error('messageUId is undefined', m);
|
21496
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21497
|
+
}
|
21498
|
+
} else if (m.messageUId) {
|
21499
|
+
m.isOffLineMessage = isOffLineMessage;
|
21500
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21501
|
+
m.messageId = generateNewMessageId();
|
21502
|
+
}
|
21503
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21504
|
+
messageList.push(m);
|
21505
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21506
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21457
21507
|
}
|
21458
21508
|
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21459
21509
|
this.handleBurnAfterReadingMessage(m);
|
21460
21510
|
}
|
21461
|
-
}
|
21462
|
-
|
21463
|
-
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21464
|
-
const index = recallMessageIndexes[i];
|
21465
|
-
const recallMessage = messageList[index];
|
21466
|
-
const recallContent = recallMessage.content;
|
21467
|
-
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21468
|
-
if (messageIndex !== -1) {
|
21469
|
-
deletedMessageIndexes.push(messageIndex);
|
21470
|
-
} else {
|
21471
|
-
recallMessageUIds.push(recallContent.messageUId);
|
21472
|
-
deletedMessageIndexes.push(index);
|
21473
|
-
}
|
21474
|
-
}
|
21475
|
-
if (deletedMessageIndexes.length) {
|
21476
|
-
let messageList_tmp = [];
|
21477
|
-
messageList.forEach((m, index) => {
|
21478
|
-
if (!deletedMessageIndexes.includes(index)) {
|
21479
|
-
messageList_tmp.push(m);
|
21480
|
-
}
|
21481
|
-
});
|
21482
|
-
messageList = messageList_tmp;
|
21483
|
-
}
|
21484
|
-
messages.push(...messageList);
|
21485
|
-
if (this.isExistPersistedMessage(messageList)) {
|
21486
|
-
splitFullDialog(dialogId);
|
21511
|
+
} else {
|
21512
|
+
logger.error('message‘s messageUId is undefined', m);
|
21487
21513
|
}
|
21488
21514
|
});
|
21489
|
-
let
|
21490
|
-
|
21491
|
-
|
21492
|
-
|
21493
|
-
|
21494
|
-
|
21495
|
-
|
21496
|
-
|
21515
|
+
let deletedMessageIndexes = [];
|
21516
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21517
|
+
const index = recallMessageIndexes[i];
|
21518
|
+
const recallMessage = messageList[index];
|
21519
|
+
const recallContent = recallMessage.content;
|
21520
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21521
|
+
if (messageIndex !== -1) {
|
21522
|
+
deletedMessageIndexes.push(messageIndex);
|
21523
|
+
} else {
|
21524
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21525
|
+
deletedMessageIndexes.push(index);
|
21526
|
+
}
|
21497
21527
|
}
|
21498
|
-
if (
|
21499
|
-
let
|
21500
|
-
|
21501
|
-
if (
|
21502
|
-
|
21503
|
-
} else if (typeof seqno === 'string') {
|
21504
|
-
seqNo_long = Long.fromString(seqno);
|
21505
|
-
} else if (typeof seqno === 'number') {
|
21506
|
-
seqNo_long = Long.fromNumber(seqno);
|
21528
|
+
if (deletedMessageIndexes.length) {
|
21529
|
+
let messageList_tmp = [];
|
21530
|
+
messageList.forEach((m, index) => {
|
21531
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21532
|
+
messageList_tmp.push(m);
|
21507
21533
|
}
|
21508
|
-
}
|
21509
|
-
|
21510
|
-
this.serverMsgSeqno = seqNo_long;
|
21511
|
-
}
|
21512
|
-
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21513
|
-
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21514
|
-
this.letterbox?.setInboxOffset(offset);
|
21515
|
-
this.pullingMsg = false;
|
21516
|
-
if (isFinished && !this.pullOfflineFinished) {
|
21517
|
-
this.pullOfflineFinished = true;
|
21518
|
-
this.watcher.pullFinished && this.watcher.pullFinished();
|
21519
|
-
}
|
21520
|
-
if (!isFinished) {
|
21521
|
-
this.pullMsg();
|
21522
|
-
}
|
21534
|
+
});
|
21535
|
+
messageList = messageList_tmp;
|
21523
21536
|
}
|
21537
|
+
messages.push(...messageList);
|
21524
21538
|
});
|
21539
|
+
let normalMessages = this.handleReceiptMessages(messages);
|
21540
|
+
if (normalMessages.length) {
|
21541
|
+
this.handleBatchMessages(normalMessages);
|
21542
|
+
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21543
|
+
}
|
21544
|
+
if (recallMessageUIds.length) {
|
21545
|
+
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21546
|
+
this.watcher.onRecall?.(recallMessageUIds);
|
21547
|
+
}
|
21525
21548
|
}
|
21526
21549
|
handleBurnAfterReadingMessage(message) {
|
21527
21550
|
const content = message.content;
|
@@ -21605,9 +21628,6 @@ class MessageLoader {
|
|
21605
21628
|
this.watcher.batchMessage?.(filteredMessages);
|
21606
21629
|
}
|
21607
21630
|
}
|
21608
|
-
isExistPersistedMessage(messageList) {
|
21609
|
-
return messageList.some(m => m.isPersited);
|
21610
|
-
}
|
21611
21631
|
}
|
21612
21632
|
|
21613
21633
|
class BaseMessage {
|
package/index.umd.js
CHANGED
@@ -19497,24 +19497,28 @@
|
|
19497
19497
|
if (!dialogIdList.length) {
|
19498
19498
|
return new Map();
|
19499
19499
|
}
|
19500
|
-
|
19501
|
-
|
19502
|
-
|
19503
|
-
|
19504
|
-
|
19505
|
-
|
19506
|
-
|
19507
|
-
const
|
19508
|
-
|
19509
|
-
|
19510
|
-
|
19511
|
-
|
19512
|
-
|
19513
|
-
|
19514
|
-
|
19500
|
+
try {
|
19501
|
+
const {
|
19502
|
+
code,
|
19503
|
+
data
|
19504
|
+
} = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
|
19505
|
+
if (code === exports.ErrorCode.SUCCESS) {
|
19506
|
+
const content = new Map();
|
19507
|
+
for (const k in data.entry) {
|
19508
|
+
const v = data.entry[k];
|
19509
|
+
if (v.aesKey?.length && v.aesIV?.length) {
|
19510
|
+
const keyItem = {
|
19511
|
+
key: v.aesKey,
|
19512
|
+
iv: v.aesIV
|
19513
|
+
};
|
19514
|
+
content.set(k, keyItem);
|
19515
|
+
this.aesKeyRecord.set(k, keyItem);
|
19516
|
+
}
|
19515
19517
|
}
|
19518
|
+
return content;
|
19516
19519
|
}
|
19517
|
-
|
19520
|
+
} catch (error) {
|
19521
|
+
logger.error('getDialogAesKeyListFromRemote error', error);
|
19518
19522
|
}
|
19519
19523
|
return new Map();
|
19520
19524
|
}
|
@@ -20441,15 +20445,22 @@
|
|
20441
20445
|
}
|
20442
20446
|
const remainDialogIds = new Set([...msgs.keys()]);
|
20443
20447
|
DialogSecretKey$1.getDialogAesKeyListInBatches([...msgs.keys()], (remote, aesKeys) => {
|
20444
|
-
|
20445
|
-
|
20446
|
-
|
20447
|
-
|
20448
|
+
try {
|
20449
|
+
if (aesKeys.size) {
|
20450
|
+
const dialogIds = [...aesKeys.keys()];
|
20451
|
+
for (const k of dialogIds) {
|
20452
|
+
remainDialogIds.delete(k);
|
20453
|
+
}
|
20454
|
+
callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
|
20455
|
+
}
|
20456
|
+
if (remainDialogIds.size && remote) {
|
20457
|
+
callback(true, new Map());
|
20458
|
+
}
|
20459
|
+
} catch (error) {
|
20460
|
+
logger.error('parseDialogsMessages error', error);
|
20461
|
+
if (remainDialogIds.size && remote) {
|
20462
|
+
callback(true, new Map());
|
20448
20463
|
}
|
20449
|
-
callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
|
20450
|
-
}
|
20451
|
-
if (remainDialogIds.size && remote) {
|
20452
|
-
callback(true, new Map());
|
20453
20464
|
}
|
20454
20465
|
});
|
20455
20466
|
}
|
@@ -20512,7 +20523,11 @@
|
|
20512
20523
|
if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
|
20513
20524
|
return;
|
20514
20525
|
}
|
20515
|
-
|
20526
|
+
if (notEmptyString(receivedMessage.messageUId)) {
|
20527
|
+
contentList.push(receivedMessage);
|
20528
|
+
} else {
|
20529
|
+
logger.error('message is invalid', item);
|
20530
|
+
}
|
20516
20531
|
}
|
20517
20532
|
});
|
20518
20533
|
return contentList;
|
@@ -21434,100 +21449,108 @@
|
|
21434
21449
|
});
|
21435
21450
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21436
21451
|
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21437
|
-
|
21438
|
-
|
21439
|
-
|
21440
|
-
|
21441
|
-
|
21442
|
-
|
21443
|
-
|
21444
|
-
|
21445
|
-
|
21446
|
-
|
21447
|
-
|
21448
|
-
} else {
|
21449
|
-
|
21450
|
-
}
|
21451
|
-
|
21452
|
-
m.isOffLineMessage = isOffLineMessage;
|
21453
|
-
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21454
|
-
m.messageId = generateNewMessageId();
|
21455
|
-
}
|
21456
|
-
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21457
|
-
messageList.push(m);
|
21458
|
-
if (m.messageType === MessageTypes.RECALL) {
|
21459
|
-
recallMessageIndexes.push(messageList.length - 1);
|
21452
|
+
try {
|
21453
|
+
this.processMessages(outputMsgs, !this.pullOfflineFinished);
|
21454
|
+
} catch (error) {
|
21455
|
+
logger.error('processMessages error', error);
|
21456
|
+
}
|
21457
|
+
if (done) {
|
21458
|
+
try {
|
21459
|
+
let seqNo_long;
|
21460
|
+
if (seqno) {
|
21461
|
+
if (Long.isLong(seqno)) {
|
21462
|
+
seqNo_long = seqno;
|
21463
|
+
} else if (typeof seqno === 'string') {
|
21464
|
+
seqNo_long = Long.fromString(seqno);
|
21465
|
+
} else if (typeof seqno === 'number') {
|
21466
|
+
seqNo_long = Long.fromNumber(seqno);
|
21460
21467
|
}
|
21468
|
+
}
|
21469
|
+
if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
|
21470
|
+
this.serverMsgSeqno = seqNo_long;
|
21471
|
+
}
|
21472
|
+
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21473
|
+
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21474
|
+
this.letterbox?.setInboxOffset(offset);
|
21475
|
+
this.pullingMsg = false;
|
21476
|
+
if (isFinished && !this.pullOfflineFinished) {
|
21477
|
+
this.pullOfflineFinished = true;
|
21478
|
+
this.watcher.pullFinished && this.watcher.pullFinished();
|
21479
|
+
}
|
21480
|
+
if (!isFinished) {
|
21481
|
+
this.pullMsg();
|
21482
|
+
}
|
21483
|
+
} catch (error) {
|
21484
|
+
logger.error('setPullMsgDone error', error);
|
21485
|
+
this.pullingMsg = false;
|
21486
|
+
}
|
21487
|
+
}
|
21488
|
+
});
|
21489
|
+
}
|
21490
|
+
processMessages(outputMsgs, isOffLineMessage) {
|
21491
|
+
const messages = [];
|
21492
|
+
let recallMessageUIds = [];
|
21493
|
+
outputMsgs.forEach((l, dialogId) => {
|
21494
|
+
let messageList = [];
|
21495
|
+
const recallMessageIndexes = [];
|
21496
|
+
l.forEach(m => {
|
21497
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21498
|
+
if (m.content.messageUId) {
|
21499
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21500
|
+
recallMessageUIds.push(m.content.messageUId);
|
21461
21501
|
} else {
|
21462
|
-
logger.error('messageUId is undefined', m);
|
21502
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21503
|
+
}
|
21504
|
+
} else if (m.messageUId) {
|
21505
|
+
m.isOffLineMessage = isOffLineMessage;
|
21506
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21507
|
+
m.messageId = generateNewMessageId();
|
21508
|
+
}
|
21509
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21510
|
+
messageList.push(m);
|
21511
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21512
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21463
21513
|
}
|
21464
21514
|
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21465
21515
|
this.handleBurnAfterReadingMessage(m);
|
21466
21516
|
}
|
21467
|
-
}
|
21468
|
-
|
21469
|
-
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21470
|
-
const index = recallMessageIndexes[i];
|
21471
|
-
const recallMessage = messageList[index];
|
21472
|
-
const recallContent = recallMessage.content;
|
21473
|
-
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21474
|
-
if (messageIndex !== -1) {
|
21475
|
-
deletedMessageIndexes.push(messageIndex);
|
21476
|
-
} else {
|
21477
|
-
recallMessageUIds.push(recallContent.messageUId);
|
21478
|
-
deletedMessageIndexes.push(index);
|
21479
|
-
}
|
21480
|
-
}
|
21481
|
-
if (deletedMessageIndexes.length) {
|
21482
|
-
let messageList_tmp = [];
|
21483
|
-
messageList.forEach((m, index) => {
|
21484
|
-
if (!deletedMessageIndexes.includes(index)) {
|
21485
|
-
messageList_tmp.push(m);
|
21486
|
-
}
|
21487
|
-
});
|
21488
|
-
messageList = messageList_tmp;
|
21489
|
-
}
|
21490
|
-
messages.push(...messageList);
|
21491
|
-
if (this.isExistPersistedMessage(messageList)) {
|
21492
|
-
splitFullDialog(dialogId);
|
21517
|
+
} else {
|
21518
|
+
logger.error('message‘s messageUId is undefined', m);
|
21493
21519
|
}
|
21494
21520
|
});
|
21495
|
-
let
|
21496
|
-
|
21497
|
-
|
21498
|
-
|
21499
|
-
|
21500
|
-
|
21501
|
-
|
21502
|
-
|
21521
|
+
let deletedMessageIndexes = [];
|
21522
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21523
|
+
const index = recallMessageIndexes[i];
|
21524
|
+
const recallMessage = messageList[index];
|
21525
|
+
const recallContent = recallMessage.content;
|
21526
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21527
|
+
if (messageIndex !== -1) {
|
21528
|
+
deletedMessageIndexes.push(messageIndex);
|
21529
|
+
} else {
|
21530
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21531
|
+
deletedMessageIndexes.push(index);
|
21532
|
+
}
|
21503
21533
|
}
|
21504
|
-
if (
|
21505
|
-
let
|
21506
|
-
|
21507
|
-
if (
|
21508
|
-
|
21509
|
-
} else if (typeof seqno === 'string') {
|
21510
|
-
seqNo_long = Long.fromString(seqno);
|
21511
|
-
} else if (typeof seqno === 'number') {
|
21512
|
-
seqNo_long = Long.fromNumber(seqno);
|
21534
|
+
if (deletedMessageIndexes.length) {
|
21535
|
+
let messageList_tmp = [];
|
21536
|
+
messageList.forEach((m, index) => {
|
21537
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21538
|
+
messageList_tmp.push(m);
|
21513
21539
|
}
|
21514
|
-
}
|
21515
|
-
|
21516
|
-
this.serverMsgSeqno = seqNo_long;
|
21517
|
-
}
|
21518
|
-
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21519
|
-
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21520
|
-
this.letterbox?.setInboxOffset(offset);
|
21521
|
-
this.pullingMsg = false;
|
21522
|
-
if (isFinished && !this.pullOfflineFinished) {
|
21523
|
-
this.pullOfflineFinished = true;
|
21524
|
-
this.watcher.pullFinished && this.watcher.pullFinished();
|
21525
|
-
}
|
21526
|
-
if (!isFinished) {
|
21527
|
-
this.pullMsg();
|
21528
|
-
}
|
21540
|
+
});
|
21541
|
+
messageList = messageList_tmp;
|
21529
21542
|
}
|
21543
|
+
messages.push(...messageList);
|
21530
21544
|
});
|
21545
|
+
let normalMessages = this.handleReceiptMessages(messages);
|
21546
|
+
if (normalMessages.length) {
|
21547
|
+
this.handleBatchMessages(normalMessages);
|
21548
|
+
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21549
|
+
}
|
21550
|
+
if (recallMessageUIds.length) {
|
21551
|
+
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21552
|
+
this.watcher.onRecall?.(recallMessageUIds);
|
21553
|
+
}
|
21531
21554
|
}
|
21532
21555
|
handleBurnAfterReadingMessage(message) {
|
21533
21556
|
const content = message.content;
|
@@ -21611,9 +21634,6 @@
|
|
21611
21634
|
this.watcher.batchMessage?.(filteredMessages);
|
21612
21635
|
}
|
21613
21636
|
}
|
21614
|
-
isExistPersistedMessage(messageList) {
|
21615
|
-
return messageList.some(m => m.isPersited);
|
21616
|
-
}
|
21617
21637
|
}
|
21618
21638
|
|
21619
21639
|
class BaseMessage {
|