@onyx-p/imlib-web 2.4.2 → 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 -96
- package/index.umd.js +130 -96
- 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
|
}
|
@@ -19739,7 +19743,7 @@ class ConversationStore {
|
|
19739
19743
|
messageDirection,
|
19740
19744
|
content
|
19741
19745
|
} = message;
|
19742
|
-
if (messageDirection === MessageDirection.SEND || !isMentioned && messageType !== MessageTypes.RECALL) {
|
19746
|
+
if (!messageUId || messageDirection === MessageDirection.SEND || !isMentioned && messageType !== MessageTypes.RECALL) {
|
19743
19747
|
return;
|
19744
19748
|
}
|
19745
19749
|
const key = this.getStoreKey({
|
@@ -19756,7 +19760,7 @@ class ConversationStore {
|
|
19756
19760
|
}
|
19757
19761
|
if (messageType === MessageTypes.RECALL && conversationType === ConversationType.GROUP) {
|
19758
19762
|
const recallContent = content;
|
19759
|
-
const index = localMentionedUIdList.indexOf(recallContent.messageUId
|
19763
|
+
const index = localMentionedUIdList.indexOf(recallContent.messageUId?.toString() ?? '');
|
19760
19764
|
if (index >= 0) {
|
19761
19765
|
localMentionedUIdList.splice(index, 1);
|
19762
19766
|
}
|
@@ -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,86 +21443,108 @@ class MessageLoader {
|
|
21428
21443
|
});
|
21429
21444
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21430
21445
|
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21431
|
-
|
21432
|
-
|
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);
|
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 = [];
|
21433
21489
|
const recallMessageIndexes = [];
|
21434
|
-
|
21435
|
-
|
21436
|
-
|
21437
|
-
l.forEach(m => {
|
21438
|
-
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21490
|
+
l.forEach(m => {
|
21491
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21492
|
+
if (m.content.messageUId) {
|
21439
21493
|
RecallMessageStore.remove(m.content.messageUId);
|
21440
21494
|
recallMessageUIds.push(m.content.messageUId);
|
21441
21495
|
} else {
|
21442
|
-
|
21443
|
-
|
21444
|
-
|
21445
|
-
|
21446
|
-
|
21447
|
-
|
21448
|
-
|
21449
|
-
|
21450
|
-
|
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);
|
21451
21507
|
}
|
21452
21508
|
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21453
21509
|
this.handleBurnAfterReadingMessage(m);
|
21454
21510
|
}
|
21455
|
-
}
|
21456
|
-
|
21457
|
-
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21458
|
-
const index = recallMessageIndexes[i];
|
21459
|
-
const recallMessage = messageList[index];
|
21460
|
-
const recallContent = recallMessage.content;
|
21461
|
-
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21462
|
-
if (messageIndex !== -1) {
|
21463
|
-
deletedMessageIndexes.push(messageIndex);
|
21464
|
-
} else {
|
21465
|
-
recallMessageUIds.push(recallContent.messageUId);
|
21466
|
-
deletedMessageIndexes.push(index);
|
21467
|
-
}
|
21468
|
-
}
|
21469
|
-
messageList = messageList.filter((m, index) => !deletedMessageIndexes.includes(index));
|
21470
|
-
messages.push(...messageList);
|
21471
|
-
if (this.isExistPersistedMessage(messageList)) {
|
21472
|
-
splitFullDialog(dialogId);
|
21511
|
+
} else {
|
21512
|
+
logger.error('message‘s messageUId is undefined', m);
|
21473
21513
|
}
|
21474
21514
|
});
|
21475
|
-
let
|
21476
|
-
|
21477
|
-
|
21478
|
-
|
21479
|
-
|
21480
|
-
|
21481
|
-
|
21482
|
-
|
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
|
+
}
|
21483
21527
|
}
|
21484
|
-
if (
|
21485
|
-
let
|
21486
|
-
|
21487
|
-
if (
|
21488
|
-
|
21489
|
-
} else if (typeof seqno === 'string') {
|
21490
|
-
seqNo_long = Long.fromString(seqno);
|
21491
|
-
} else if (typeof seqno === 'number') {
|
21492
|
-
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);
|
21493
21533
|
}
|
21494
|
-
}
|
21495
|
-
|
21496
|
-
this.serverMsgSeqno = seqNo_long;
|
21497
|
-
}
|
21498
|
-
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21499
|
-
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21500
|
-
this.letterbox?.setInboxOffset(offset);
|
21501
|
-
this.pullingMsg = false;
|
21502
|
-
if (isFinished && !this.pullOfflineFinished) {
|
21503
|
-
this.pullOfflineFinished = true;
|
21504
|
-
this.watcher.pullFinished && this.watcher.pullFinished();
|
21505
|
-
}
|
21506
|
-
if (!isFinished) {
|
21507
|
-
this.pullMsg();
|
21508
|
-
}
|
21534
|
+
});
|
21535
|
+
messageList = messageList_tmp;
|
21509
21536
|
}
|
21537
|
+
messages.push(...messageList);
|
21510
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
|
+
}
|
21511
21548
|
}
|
21512
21549
|
handleBurnAfterReadingMessage(message) {
|
21513
21550
|
const content = message.content;
|
@@ -21591,9 +21628,6 @@ class MessageLoader {
|
|
21591
21628
|
this.watcher.batchMessage?.(filteredMessages);
|
21592
21629
|
}
|
21593
21630
|
}
|
21594
|
-
isExistPersistedMessage(messageList) {
|
21595
|
-
return messageList.some(m => m.isPersited);
|
21596
|
-
}
|
21597
21631
|
}
|
21598
21632
|
|
21599
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
|
}
|
@@ -19745,7 +19749,7 @@
|
|
19745
19749
|
messageDirection,
|
19746
19750
|
content
|
19747
19751
|
} = message;
|
19748
|
-
if (messageDirection === exports.MessageDirection.SEND || !isMentioned && messageType !== MessageTypes.RECALL) {
|
19752
|
+
if (!messageUId || messageDirection === exports.MessageDirection.SEND || !isMentioned && messageType !== MessageTypes.RECALL) {
|
19749
19753
|
return;
|
19750
19754
|
}
|
19751
19755
|
const key = this.getStoreKey({
|
@@ -19762,7 +19766,7 @@
|
|
19762
19766
|
}
|
19763
19767
|
if (messageType === MessageTypes.RECALL && conversationType === exports.ConversationType.GROUP) {
|
19764
19768
|
const recallContent = content;
|
19765
|
-
const index = localMentionedUIdList.indexOf(recallContent.messageUId
|
19769
|
+
const index = localMentionedUIdList.indexOf(recallContent.messageUId?.toString() ?? '');
|
19766
19770
|
if (index >= 0) {
|
19767
19771
|
localMentionedUIdList.splice(index, 1);
|
19768
19772
|
}
|
@@ -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,86 +21449,108 @@
|
|
21434
21449
|
});
|
21435
21450
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21436
21451
|
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21437
|
-
|
21438
|
-
|
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);
|
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 = [];
|
21439
21495
|
const recallMessageIndexes = [];
|
21440
|
-
|
21441
|
-
|
21442
|
-
|
21443
|
-
l.forEach(m => {
|
21444
|
-
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21496
|
+
l.forEach(m => {
|
21497
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21498
|
+
if (m.content.messageUId) {
|
21445
21499
|
RecallMessageStore.remove(m.content.messageUId);
|
21446
21500
|
recallMessageUIds.push(m.content.messageUId);
|
21447
21501
|
} else {
|
21448
|
-
|
21449
|
-
|
21450
|
-
|
21451
|
-
|
21452
|
-
|
21453
|
-
|
21454
|
-
|
21455
|
-
|
21456
|
-
|
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);
|
21457
21513
|
}
|
21458
21514
|
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21459
21515
|
this.handleBurnAfterReadingMessage(m);
|
21460
21516
|
}
|
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
|
-
messageList = messageList.filter((m, index) => !deletedMessageIndexes.includes(index));
|
21476
|
-
messages.push(...messageList);
|
21477
|
-
if (this.isExistPersistedMessage(messageList)) {
|
21478
|
-
splitFullDialog(dialogId);
|
21517
|
+
} else {
|
21518
|
+
logger.error('message‘s messageUId is undefined', m);
|
21479
21519
|
}
|
21480
21520
|
});
|
21481
|
-
let
|
21482
|
-
|
21483
|
-
|
21484
|
-
|
21485
|
-
|
21486
|
-
|
21487
|
-
|
21488
|
-
|
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
|
+
}
|
21489
21533
|
}
|
21490
|
-
if (
|
21491
|
-
let
|
21492
|
-
|
21493
|
-
if (
|
21494
|
-
|
21495
|
-
} else if (typeof seqno === 'string') {
|
21496
|
-
seqNo_long = Long.fromString(seqno);
|
21497
|
-
} else if (typeof seqno === 'number') {
|
21498
|
-
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);
|
21499
21539
|
}
|
21500
|
-
}
|
21501
|
-
|
21502
|
-
this.serverMsgSeqno = seqNo_long;
|
21503
|
-
}
|
21504
|
-
const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
|
21505
|
-
logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
|
21506
|
-
this.letterbox?.setInboxOffset(offset);
|
21507
|
-
this.pullingMsg = false;
|
21508
|
-
if (isFinished && !this.pullOfflineFinished) {
|
21509
|
-
this.pullOfflineFinished = true;
|
21510
|
-
this.watcher.pullFinished && this.watcher.pullFinished();
|
21511
|
-
}
|
21512
|
-
if (!isFinished) {
|
21513
|
-
this.pullMsg();
|
21514
|
-
}
|
21540
|
+
});
|
21541
|
+
messageList = messageList_tmp;
|
21515
21542
|
}
|
21543
|
+
messages.push(...messageList);
|
21516
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
|
+
}
|
21517
21554
|
}
|
21518
21555
|
handleBurnAfterReadingMessage(message) {
|
21519
21556
|
const content = message.content;
|
@@ -21597,9 +21634,6 @@
|
|
21597
21634
|
this.watcher.batchMessage?.(filteredMessages);
|
21598
21635
|
}
|
21599
21636
|
}
|
21600
|
-
isExistPersistedMessage(messageList) {
|
21601
|
-
return messageList.some(m => m.isPersited);
|
21602
|
-
}
|
21603
21637
|
}
|
21604
21638
|
|
21605
21639
|
class BaseMessage {
|