@mtkruto/node 0.1.141 → 0.1.143
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/esm/4_constants.d.ts +1 -1
- package/esm/4_constants.js +1 -1
- package/esm/5_client.d.ts +1 -0
- package/esm/5_client.js +1 -0
- package/esm/client/0_types.d.ts +2 -0
- package/esm/client/1_bot_info_manager.d.ts +30 -0
- package/esm/client/1_bot_info_manager.js +66 -0
- package/esm/client/1_network_statistics_manager.d.ts +19 -0
- package/esm/client/1_network_statistics_manager.js +48 -0
- package/esm/client/1_reaction_manager.d.ts +9 -0
- package/esm/client/1_reaction_manager.js +84 -0
- package/esm/client/2_message_manager.d.ts +22 -2
- package/esm/client/2_message_manager.js +282 -28
- package/esm/client/3_callback_query_manager.d.ts +16 -0
- package/esm/client/3_callback_query_manager.js +36 -0
- package/esm/client/3_chat_list_manager.d.ts +5 -9
- package/esm/client/3_chat_list_manager.js +190 -103
- package/esm/client/3_inline_query_manager.d.ts +16 -0
- package/esm/client/3_inline_query_manager.js +49 -0
- package/esm/client/4_client.d.ts +12 -12
- package/esm/client/4_client.js +162 -538
- package/esm/client/5_session_string.d.ts +3 -0
- package/esm/client/5_session_string.js +22 -0
- package/esm/connection/1_connection_web_socket.js +1 -1
- package/package.json +1 -1
- package/script/4_constants.d.ts +1 -1
- package/script/4_constants.js +1 -1
- package/script/5_client.d.ts +1 -0
- package/script/5_client.js +1 -0
- package/script/client/0_types.d.ts +2 -0
- package/script/client/1_bot_info_manager.d.ts +30 -0
- package/script/client/1_bot_info_manager.js +70 -0
- package/script/client/1_network_statistics_manager.d.ts +19 -0
- package/script/client/1_network_statistics_manager.js +52 -0
- package/script/client/1_reaction_manager.d.ts +9 -0
- package/script/client/1_reaction_manager.js +88 -0
- package/script/client/2_message_manager.d.ts +22 -2
- package/script/client/2_message_manager.js +281 -27
- package/script/client/3_callback_query_manager.d.ts +16 -0
- package/script/client/3_callback_query_manager.js +40 -0
- package/script/client/3_chat_list_manager.d.ts +5 -9
- package/script/client/3_chat_list_manager.js +187 -100
- package/script/client/3_inline_query_manager.d.ts +16 -0
- package/script/client/3_inline_query_manager.js +53 -0
- package/script/client/4_client.d.ts +12 -12
- package/script/client/4_client.js +158 -534
- package/script/client/5_session_string.d.ts +3 -0
- package/script/client/5_session_string.js +27 -0
- package/script/connection/1_connection_web_socket.js +1 -1
- package/esm/client/3_reaction_manager.d.ts +0 -16
- package/esm/client/3_reaction_manager.js +0 -61
- package/script/client/3_reaction_manager.d.ts +0 -16
- package/script/client/3_reaction_manager.js +0 -65
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _MessageManager_instances, _MessageManager_c,
|
|
13
|
+
var _MessageManager_instances, _MessageManager_c, _MessageManager_updatesToMessages, _MessageManager_constructReplyMarkup, _MessageManager_resolveSendAs, _MessageManager_constructReplyTo, _MessageManager_sendDocumentInner, _MessageManager_sendMedia, _MessageManager_resolveFileId, _MessageManager_sendReaction;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.MessageManager = void 0;
|
|
16
16
|
const _0_deps_js_1 = require("../0_deps.js");
|
|
@@ -25,9 +25,14 @@ class MessageManager {
|
|
|
25
25
|
constructor(c) {
|
|
26
26
|
_MessageManager_instances.add(this);
|
|
27
27
|
_MessageManager_c.set(this, void 0);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Object.defineProperty(this, "usernameResolver", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: async (v) => {
|
|
33
|
+
const inputPeer = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(v).then((v) => v[_2_tl_js_1.as](_2_tl_js_1.types.InputPeerUser));
|
|
34
|
+
return new _2_tl_js_1.types.InputUser(inputPeer);
|
|
35
|
+
}
|
|
31
36
|
});
|
|
32
37
|
__classPrivateFieldSet(this, _MessageManager_c, c, "f");
|
|
33
38
|
}
|
|
@@ -81,6 +86,26 @@ class MessageManager {
|
|
|
81
86
|
const messages = await this.getMessages(chatId, [messageId]);
|
|
82
87
|
return messages[0] ?? null;
|
|
83
88
|
}
|
|
89
|
+
parseText(text, params) {
|
|
90
|
+
const entities_ = params?.entities ?? [];
|
|
91
|
+
const parseMode = params?.parseMode ?? __classPrivateFieldGet(this, _MessageManager_c, "f").parseMode;
|
|
92
|
+
switch (parseMode) {
|
|
93
|
+
case null:
|
|
94
|
+
break;
|
|
95
|
+
case "HTML": {
|
|
96
|
+
const [newText, entitiesToPush] = (0, _0_html_js_1.parseHtml)(text);
|
|
97
|
+
text = newText;
|
|
98
|
+
for (const entity of entitiesToPush) {
|
|
99
|
+
entities_.push(entity);
|
|
100
|
+
}
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
default:
|
|
104
|
+
(0, _1_utilities_js_1.UNREACHABLE)();
|
|
105
|
+
}
|
|
106
|
+
const entities = entities_?.length > 0 ? entities_.map((v) => (0, _3_types_js_1.messageEntityToTlObject)(v)) : undefined;
|
|
107
|
+
return [text, entities];
|
|
108
|
+
}
|
|
84
109
|
async getStickerSetName(inputStickerSet, hash = 0) {
|
|
85
110
|
const maybeStickerSetName = await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.getStickerSetName(inputStickerSet.id, inputStickerSet.access_hash);
|
|
86
111
|
if (maybeStickerSetName != null && Date.now() - maybeStickerSetName[1].getTime() < _4_constants_js_1.STICKER_SET_NAME_TTL) {
|
|
@@ -155,7 +180,7 @@ class MessageManager {
|
|
|
155
180
|
return messages;
|
|
156
181
|
}
|
|
157
182
|
async sendMessage(chatId, text, params) {
|
|
158
|
-
const [message, entities] =
|
|
183
|
+
const [message, entities] = this.parseText(text, params);
|
|
159
184
|
const replyMarkup = await __classPrivateFieldGet(this, _MessageManager_instances, "m", _MessageManager_constructReplyMarkup).call(this, params);
|
|
160
185
|
const peer = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
161
186
|
const randomId = (0, _1_utilities_js_1.getRandomId)();
|
|
@@ -386,7 +411,7 @@ class MessageManager {
|
|
|
386
411
|
const sendAs = params?.sendAs ? await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(params.sendAs) : undefined; // TODO: check default sendAs
|
|
387
412
|
const replyMarkup = await __classPrivateFieldGet(this, _MessageManager_instances, "m", _MessageManager_constructReplyMarkup).call(this, params);
|
|
388
413
|
const explanation = params?.explanation;
|
|
389
|
-
const parseResult = explanation !== undefined ?
|
|
414
|
+
const parseResult = explanation !== undefined ? this.parseText(explanation, { parseMode: params?.explanationParseMode, entities: params?.explanationEntities }) : undefined;
|
|
390
415
|
const solution = parseResult === undefined ? undefined : parseResult[0];
|
|
391
416
|
const solutionEntities = parseResult === undefined ? undefined : parseResult[1];
|
|
392
417
|
const answers = options.map((v, i) => new _2_tl_js_1.types.PollAnswer({ option: new Uint8Array([i]), text: v }));
|
|
@@ -431,7 +456,7 @@ class MessageManager {
|
|
|
431
456
|
return message_;
|
|
432
457
|
}
|
|
433
458
|
async editMessageText(chatId, messageId, text, params) {
|
|
434
|
-
const [message, entities] =
|
|
459
|
+
const [message, entities] = this.parseText(text, params);
|
|
435
460
|
const result = await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.editMessage({
|
|
436
461
|
id: messageId,
|
|
437
462
|
peer: await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId),
|
|
@@ -478,28 +503,249 @@ class MessageManager {
|
|
|
478
503
|
async unpinMessages(chatId) {
|
|
479
504
|
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.unpinAllMessages({ peer: await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId) });
|
|
480
505
|
}
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
506
|
+
async setAvailableReactions(chatId, availableReactions) {
|
|
507
|
+
// TODO: sync with storage
|
|
508
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.setChatAvailableReactions({
|
|
509
|
+
peer: await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId),
|
|
510
|
+
available_reactions: availableReactions == "none" ? new _2_tl_js_1.types.ChatReactionsNone() : availableReactions == "all" ? new _2_tl_js_1.types.ChatReactionsAll() : Array.isArray(availableReactions) ? new _2_tl_js_1.types.ChatReactionsSome({ reactions: availableReactions.map((v) => v.type == "emoji" ? new _2_tl_js_1.types.ReactionEmoji({ emoticon: v.emoji }) : new _2_tl_js_1.types.ReactionCustomEmoji({ document_id: BigInt(v.id) })) }) : (0, _1_utilities_js_1.UNREACHABLE)(),
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
async setReactions(chatId, messageId, reactions, params) {
|
|
514
|
+
await __classPrivateFieldGet(this, _MessageManager_instances, "m", _MessageManager_sendReaction).call(this, chatId, messageId, reactions, params);
|
|
515
|
+
}
|
|
516
|
+
async addReaction(chatId, messageId, reaction, params) {
|
|
517
|
+
const chosenReactions = await this.getMessage(chatId, messageId).then((v) => v?.reactions ?? []).then((v) => v.filter((v) => v.chosen));
|
|
518
|
+
for (const r of chosenReactions) {
|
|
519
|
+
if ((0, _3_types_js_1.reactionEqual)(r.reaction, reaction)) {
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
const reactions = [reaction, ...chosenReactions.map((v) => v.reaction)];
|
|
524
|
+
await this.setReactions(chatId, messageId, reactions, params);
|
|
525
|
+
}
|
|
526
|
+
async removeReaction(chatId, messageId, reaction) {
|
|
527
|
+
const chosenReactions = await this.getMessage(chatId, messageId).then((v) => v?.reactions ?? []).then((v) => v.filter((v) => v.chosen));
|
|
528
|
+
for (const r of chosenReactions) {
|
|
529
|
+
if ((0, _3_types_js_1.reactionEqual)(r.reaction, reaction)) {
|
|
530
|
+
const reactions = chosenReactions.filter((v) => v != r).map((v) => v.reaction);
|
|
531
|
+
await this.setReactions(chatId, messageId, reactions);
|
|
532
|
+
break;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
static canHandleUpdate(update) {
|
|
537
|
+
return update instanceof _2_tl_js_1.types.UpdateNewMessage || update instanceof _2_tl_js_1.types.UpdateNewChannelMessage || update instanceof _2_tl_js_1.types.UpdateEditMessage || update instanceof _2_tl_js_1.types.UpdateEditChannelMessage || update instanceof _2_tl_js_1.types.UpdateDeleteMessages || update instanceof _2_tl_js_1.types.UpdateDeleteChannelMessages;
|
|
538
|
+
}
|
|
539
|
+
async handleUpdate(update) {
|
|
540
|
+
if (update instanceof _2_tl_js_1.types.UpdateNewMessage || update instanceof _2_tl_js_1.types.UpdateNewChannelMessage || update instanceof _2_tl_js_1.types.UpdateEditMessage || update instanceof _2_tl_js_1.types.UpdateEditChannelMessage) {
|
|
541
|
+
if (update.message instanceof _2_tl_js_1.types.Message || update.message instanceof _2_tl_js_1.types.MessageService) {
|
|
542
|
+
const chatId = (0, _2_tl_js_1.peerToChatId)(update.message.peer_id);
|
|
543
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.setMessage(chatId, update.message.id, update.message);
|
|
544
|
+
// promises.push(this.#chatListManager.reassignChatLastMessage(chatId));
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
if (update instanceof _2_tl_js_1.types.UpdateNewMessage ||
|
|
548
|
+
update instanceof _2_tl_js_1.types.UpdateNewChannelMessage ||
|
|
549
|
+
update instanceof _2_tl_js_1.types.UpdateEditMessage ||
|
|
550
|
+
update instanceof _2_tl_js_1.types.UpdateEditChannelMessage) {
|
|
551
|
+
if (!(update.message instanceof _2_tl_js_1.types.MessageEmpty)) {
|
|
552
|
+
const isOutgoing = update.message.out;
|
|
553
|
+
let shouldIgnore = isOutgoing ? (await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.getAccountType()) == "user" ? false : true : false;
|
|
554
|
+
if (__classPrivateFieldGet(this, _MessageManager_c, "f").ignoreOutgoing != null && isOutgoing) {
|
|
555
|
+
shouldIgnore = __classPrivateFieldGet(this, _MessageManager_c, "f").ignoreOutgoing;
|
|
556
|
+
}
|
|
557
|
+
if (!shouldIgnore) {
|
|
558
|
+
const message = await this.constructMessage(update.message);
|
|
559
|
+
if (update instanceof _2_tl_js_1.types.UpdateNewMessage || update instanceof _2_tl_js_1.types.UpdateNewChannelMessage) {
|
|
560
|
+
return ({ message });
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
return ({ editedMessage: message });
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
if (update instanceof _2_tl_js_1.types.UpdateDeleteMessages) {
|
|
569
|
+
const deletedMessages = new Array();
|
|
570
|
+
for (const messageId of update.messages) {
|
|
571
|
+
const chatId = await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.getMessageChat(messageId);
|
|
572
|
+
if (chatId) {
|
|
573
|
+
deletedMessages.push({ chatId, messageId });
|
|
574
|
+
}
|
|
494
575
|
}
|
|
495
|
-
|
|
576
|
+
if (deletedMessages.length > 0) {
|
|
577
|
+
return { deletedMessages };
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else if (update instanceof _2_tl_js_1.types.UpdateDeleteChannelMessages) {
|
|
581
|
+
const chatId = (0, _2_tl_js_1.getChannelChatId)(update.channel_id);
|
|
582
|
+
const deletedMessages = new Array();
|
|
583
|
+
for (const messageId of update.messages) {
|
|
584
|
+
const message = await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.getMessage(chatId, messageId);
|
|
585
|
+
if (message != null) {
|
|
586
|
+
deletedMessages.push({ chatId, messageId });
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return { deletedMessages };
|
|
496
590
|
}
|
|
497
|
-
|
|
591
|
+
return null;
|
|
592
|
+
}
|
|
593
|
+
async sendChatAction(chatId, action, params) {
|
|
594
|
+
let action_;
|
|
595
|
+
switch (action) {
|
|
596
|
+
case "type":
|
|
597
|
+
action_ = new _2_tl_js_1.types.SendMessageTypingAction();
|
|
598
|
+
break;
|
|
599
|
+
case "uploadPhoto":
|
|
600
|
+
action_ = new _2_tl_js_1.types.SendMessageUploadPhotoAction({ progress: 0 });
|
|
601
|
+
break;
|
|
602
|
+
case "recordVideo":
|
|
603
|
+
action_ = new _2_tl_js_1.types.SendMessageRecordVideoAction();
|
|
604
|
+
break;
|
|
605
|
+
case "uploadVideo":
|
|
606
|
+
action_ = new _2_tl_js_1.types.SendMessageRecordVideoAction();
|
|
607
|
+
break;
|
|
608
|
+
case "recordVoice":
|
|
609
|
+
action_ = new _2_tl_js_1.types.SendMessageRecordAudioAction();
|
|
610
|
+
break;
|
|
611
|
+
case "uploadAudio":
|
|
612
|
+
action_ = new _2_tl_js_1.types.SendMessageUploadAudioAction({ progress: 0 });
|
|
613
|
+
break;
|
|
614
|
+
case "uploadDocument":
|
|
615
|
+
action_ = new _2_tl_js_1.types.SendMessageUploadDocumentAction({ progress: 0 });
|
|
616
|
+
break;
|
|
617
|
+
case "chooseSticker":
|
|
618
|
+
action_ = new _2_tl_js_1.types.SendMessageChooseStickerAction();
|
|
619
|
+
break;
|
|
620
|
+
case "findLocation":
|
|
621
|
+
action_ = new _2_tl_js_1.types.SendMessageGeoLocationAction();
|
|
622
|
+
break;
|
|
623
|
+
case "recordVideoNote":
|
|
624
|
+
action_ = new _2_tl_js_1.types.SendMessageRecordRoundAction();
|
|
625
|
+
break;
|
|
626
|
+
case "uploadVideoNote":
|
|
627
|
+
action_ = new _2_tl_js_1.types.SendMessageUploadRoundAction({ progress: 0 });
|
|
628
|
+
break;
|
|
629
|
+
default:
|
|
630
|
+
throw new Error("Invalid chat action: " + action);
|
|
631
|
+
}
|
|
632
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.setTyping({ peer: await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId), action: action_, top_msg_id: params?.messageThreadId });
|
|
633
|
+
}
|
|
634
|
+
async deleteChatPhoto(chatId) {
|
|
635
|
+
const peer = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
636
|
+
if (!(peer instanceof _2_tl_js_1.types.InputPeerChannel) && !(peer instanceof _2_tl_js_1.types.InputPeerChat)) {
|
|
498
637
|
(0, _1_utilities_js_1.UNREACHABLE)();
|
|
638
|
+
}
|
|
639
|
+
if (peer instanceof _2_tl_js_1.types.InputPeerChannel) {
|
|
640
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.channels.editPhoto({ channel: new _2_tl_js_1.types.InputChannel(peer), photo: new _2_tl_js_1.types.InputChatPhotoEmpty() });
|
|
641
|
+
}
|
|
642
|
+
else if (peer instanceof _2_tl_js_1.types.InputPeerChat) {
|
|
643
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.editChatPhoto({ chat_id: peer.chat_id, photo: new _2_tl_js_1.types.InputChatPhotoEmpty() });
|
|
644
|
+
}
|
|
499
645
|
}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
646
|
+
async setChatPhoto(chatId, photo, params) {
|
|
647
|
+
const peer = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
648
|
+
if (!(peer instanceof _2_tl_js_1.types.InputPeerChannel) && !(peer instanceof _2_tl_js_1.types.InputPeerChat)) {
|
|
649
|
+
(0, _1_utilities_js_1.UNREACHABLE)();
|
|
650
|
+
}
|
|
651
|
+
const [contents, fileName] = await (0, _0_utilities_js_1.getFileContents)(photo);
|
|
652
|
+
const file = await __classPrivateFieldGet(this, _MessageManager_c, "f").fileManager.upload(contents, { fileName: params?.fileName ?? fileName, chunkSize: params?.chunkSize, signal: params?.signal });
|
|
653
|
+
const photo_ = new _2_tl_js_1.types.InputChatUploadedPhoto({ file });
|
|
654
|
+
if (peer instanceof _2_tl_js_1.types.InputPeerChannel) {
|
|
655
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.channels.editPhoto({ channel: new _2_tl_js_1.types.InputChannel(peer), photo: photo_ });
|
|
656
|
+
}
|
|
657
|
+
else if (peer instanceof _2_tl_js_1.types.InputPeerChat) {
|
|
658
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.editChatPhoto({ chat_id: peer.chat_id, photo: photo_ });
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
async banChatMember(chatId, memberId, params) {
|
|
662
|
+
const chat = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
663
|
+
if (!(chat instanceof _2_tl_js_1.types.InputPeerChannel) && !(chat instanceof _2_tl_js_1.types.InputPeerChat)) {
|
|
664
|
+
throw new Error("Invalid chat ID");
|
|
665
|
+
}
|
|
666
|
+
const member = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(memberId);
|
|
667
|
+
if (chat instanceof _2_tl_js_1.types.InputPeerChannel) {
|
|
668
|
+
if (params?.deleteMessages) {
|
|
669
|
+
try {
|
|
670
|
+
await this.deleteChatMemberMessages(chatId, memberId);
|
|
671
|
+
}
|
|
672
|
+
catch {
|
|
673
|
+
//
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.channels.editBanned({
|
|
677
|
+
channel: new _2_tl_js_1.types.InputChannel(chat),
|
|
678
|
+
participant: member,
|
|
679
|
+
banned_rights: new _2_tl_js_1.types.ChatBannedRights({
|
|
680
|
+
until_date: params?.untilDate ? (0, _1_utilities_js_1.toUnixTimestamp)(params.untilDate) : 0,
|
|
681
|
+
view_messages: true,
|
|
682
|
+
send_messages: true,
|
|
683
|
+
send_media: true,
|
|
684
|
+
send_stickers: true,
|
|
685
|
+
send_gifs: true,
|
|
686
|
+
send_games: true,
|
|
687
|
+
send_inline: true,
|
|
688
|
+
embed_links: true,
|
|
689
|
+
}),
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
else if (chat instanceof _2_tl_js_1.types.InputPeerChat) {
|
|
693
|
+
if (!(member instanceof _2_tl_js_1.types.InputPeerUser)) {
|
|
694
|
+
throw new Error("Invalid user ID");
|
|
695
|
+
}
|
|
696
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.deleteChatUser({
|
|
697
|
+
chat_id: chat.chat_id,
|
|
698
|
+
user_id: new _2_tl_js_1.types.InputUser(member),
|
|
699
|
+
revoke_history: params?.deleteMessages ? true : undefined,
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
async unbanChatMember(chatId, memberId) {
|
|
704
|
+
const chat = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
705
|
+
if (!(chat instanceof _2_tl_js_1.types.InputPeerChannel)) {
|
|
706
|
+
throw new Error("Invalid chat ID");
|
|
707
|
+
}
|
|
708
|
+
const member = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(memberId);
|
|
709
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.channels.editBanned({
|
|
710
|
+
channel: new _2_tl_js_1.types.InputChannel(chat),
|
|
711
|
+
participant: member,
|
|
712
|
+
banned_rights: new _2_tl_js_1.types.ChatBannedRights({ until_date: 0 }),
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
async setChatMemberRights(chatId, memberId, params) {
|
|
716
|
+
const chat = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId);
|
|
717
|
+
if (!(chat instanceof _2_tl_js_1.types.InputPeerChannel)) {
|
|
718
|
+
throw new Error("Invalid chat ID");
|
|
719
|
+
}
|
|
720
|
+
const member = await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(memberId);
|
|
721
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.channels.editBanned({
|
|
722
|
+
channel: new _2_tl_js_1.types.InputChannel(chat),
|
|
723
|
+
participant: member,
|
|
724
|
+
banned_rights: new _2_tl_js_1.types.ChatBannedRights({
|
|
725
|
+
until_date: params?.untilDate ? (0, _1_utilities_js_1.toUnixTimestamp)(params.untilDate) : 0,
|
|
726
|
+
send_messages: params?.rights?.canSendMessages ? true : undefined,
|
|
727
|
+
send_audios: params?.rights?.canSendAudio ? true : undefined,
|
|
728
|
+
send_docs: params?.rights?.canSendDocuments ? true : undefined,
|
|
729
|
+
send_photos: params?.rights?.canSendPhotos ? true : undefined,
|
|
730
|
+
send_videos: params?.rights?.canSendVideos ? true : undefined,
|
|
731
|
+
send_roundvideos: params?.rights?.canSendVideoNotes ? true : undefined,
|
|
732
|
+
send_voices: params?.rights?.canSendVoice ? true : undefined,
|
|
733
|
+
send_polls: params?.rights?.canSendPolls ? true : undefined,
|
|
734
|
+
send_stickers: params?.rights?.canSendStickers ? true : undefined,
|
|
735
|
+
send_gifs: params?.rights?.canSendAnimations ? true : undefined,
|
|
736
|
+
send_games: params?.rights?.canSendGames ? true : undefined,
|
|
737
|
+
send_inline: params?.rights?.canSendInlineBotResults ? true : undefined,
|
|
738
|
+
embed_links: params?.rights?.canAddWebPagePreviews ? true : undefined,
|
|
739
|
+
change_info: params?.rights?.canChangeInfo ? true : undefined,
|
|
740
|
+
invite_users: params?.rights?.canInviteUsers ? true : undefined,
|
|
741
|
+
pin_messages: params?.rights?.canPinMessages ? true : undefined,
|
|
742
|
+
manage_topics: params?.rights?.canManageTopics ? true : undefined,
|
|
743
|
+
}),
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
exports.MessageManager = MessageManager;
|
|
748
|
+
_MessageManager_c = new WeakMap(), _MessageManager_instances = new WeakSet(), _MessageManager_updatesToMessages = async function _MessageManager_updatesToMessages(chatId, updates) {
|
|
503
749
|
const messages = new Array();
|
|
504
750
|
if (updates instanceof _2_tl_js_1.types.Updates) {
|
|
505
751
|
for (const update of updates.updates) {
|
|
@@ -524,7 +770,7 @@ _MessageManager_c = new WeakMap(), _MessageManager_usernameResolver = new WeakMa
|
|
|
524
770
|
}, _MessageManager_constructReplyMarkup = async function _MessageManager_constructReplyMarkup(params) {
|
|
525
771
|
if (params?.replyMarkup) {
|
|
526
772
|
await __classPrivateFieldGet(this, _MessageManager_c, "f").storage.assertBot("replyMarkup");
|
|
527
|
-
return (0, _3_types_js_1.replyMarkupToTlObject)(params.replyMarkup,
|
|
773
|
+
return (0, _3_types_js_1.replyMarkupToTlObject)(params.replyMarkup, this.usernameResolver.bind(this));
|
|
528
774
|
}
|
|
529
775
|
}, _MessageManager_resolveSendAs = async function _MessageManager_resolveSendAs(params) {
|
|
530
776
|
const sendAs = params?.sendAs;
|
|
@@ -584,7 +830,7 @@ _MessageManager_c = new WeakMap(), _MessageManager_usernameResolver = new WeakMa
|
|
|
584
830
|
const sendAs = params?.sendAs ? await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(params.sendAs) : undefined; // TODO: check default sendAs
|
|
585
831
|
const replyMarkup = await __classPrivateFieldGet(this, _MessageManager_instances, "m", _MessageManager_constructReplyMarkup).call(this, params);
|
|
586
832
|
const caption_ = params?.caption;
|
|
587
|
-
const parseResult = caption_ !== undefined ?
|
|
833
|
+
const parseResult = caption_ !== undefined ? this.parseText(caption_, { parseMode: params?.parseMode, entities: params?.captionEntities }) : undefined;
|
|
588
834
|
const caption = parseResult === undefined ? undefined : parseResult[0];
|
|
589
835
|
const captionEntities = parseResult === undefined ? undefined : parseResult[1];
|
|
590
836
|
const result = await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.sendMedia({
|
|
@@ -622,4 +868,12 @@ _MessageManager_c = new WeakMap(), _MessageManager_usernameResolver = new WeakMa
|
|
|
622
868
|
};
|
|
623
869
|
}
|
|
624
870
|
return null;
|
|
871
|
+
}, _MessageManager_sendReaction = async function _MessageManager_sendReaction(chatId, messageId, reactions, params) {
|
|
872
|
+
await __classPrivateFieldGet(this, _MessageManager_c, "f").api.messages.sendReaction({
|
|
873
|
+
peer: await __classPrivateFieldGet(this, _MessageManager_c, "f").getInputPeer(chatId),
|
|
874
|
+
msg_id: messageId,
|
|
875
|
+
reaction: reactions.map((v) => (0, _3_types_js_1.reactionToTlObject)(v)),
|
|
876
|
+
big: params?.big ? true : undefined,
|
|
877
|
+
add_to_recent: params?.addToRecents ? true : undefined,
|
|
878
|
+
});
|
|
625
879
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { enums, types } from "../2_tl.js";
|
|
2
|
+
import { Update } from "../3_types.js";
|
|
3
|
+
import { AnswerCallbackQueryParams } from "./0_params.js";
|
|
4
|
+
import { C as C_ } from "./0_types.js";
|
|
5
|
+
import { MessageManager } from "./2_message_manager.js";
|
|
6
|
+
type C = C_ & {
|
|
7
|
+
messageManager: MessageManager;
|
|
8
|
+
};
|
|
9
|
+
export declare class CallbackQueryManager {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(c: C);
|
|
12
|
+
answerCallbackQuery(id: string, params?: AnswerCallbackQueryParams): Promise<void>;
|
|
13
|
+
static canHandleUpdate(update: enums.Update): update is types.UpdateBotCallbackQuery | types.UpdateInlineBotCallbackQuery;
|
|
14
|
+
handleUpdate(update: types.UpdateBotCallbackQuery | types.UpdateInlineBotCallbackQuery): Promise<Update>;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _CallbackQueryManager_c;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CallbackQueryManager = void 0;
|
|
16
|
+
const _2_tl_js_1 = require("../2_tl.js");
|
|
17
|
+
const _3_types_js_1 = require("../3_types.js");
|
|
18
|
+
class CallbackQueryManager {
|
|
19
|
+
constructor(c) {
|
|
20
|
+
_CallbackQueryManager_c.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _CallbackQueryManager_c, c, "f");
|
|
22
|
+
}
|
|
23
|
+
async answerCallbackQuery(id, params) {
|
|
24
|
+
await __classPrivateFieldGet(this, _CallbackQueryManager_c, "f").storage.assertBot("answerCallbackQuery");
|
|
25
|
+
await __classPrivateFieldGet(this, _CallbackQueryManager_c, "f").api.messages.setBotCallbackAnswer({
|
|
26
|
+
query_id: BigInt(id),
|
|
27
|
+
cache_time: params?.cacheTime ?? 0,
|
|
28
|
+
message: params?.text,
|
|
29
|
+
alert: params?.alert ? true : undefined,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
static canHandleUpdate(update) {
|
|
33
|
+
return update instanceof _2_tl_js_1.types.UpdateBotCallbackQuery || update instanceof _2_tl_js_1.types.UpdateInlineBotCallbackQuery;
|
|
34
|
+
}
|
|
35
|
+
async handleUpdate(update) {
|
|
36
|
+
return { callbackQuery: await (0, _3_types_js_1.constructCallbackQuery)(update, __classPrivateFieldGet(this, _CallbackQueryManager_c, "f").getEntity, __classPrivateFieldGet(this, _CallbackQueryManager_c, "f").messageManager.getMessageWithReply.bind(__classPrivateFieldGet(this, _CallbackQueryManager_c, "f").messageManager)) };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.CallbackQueryManager = CallbackQueryManager;
|
|
40
|
+
_CallbackQueryManager_c = new WeakMap();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { types } from "../2_tl.js";
|
|
2
|
-
import { Chat } from "../3_types.js";
|
|
1
|
+
import { enums, types } from "../2_tl.js";
|
|
2
|
+
import { Chat, ID } from "../3_types.js";
|
|
3
3
|
import { C as C_ } from "./0_types.js";
|
|
4
4
|
import { MessageManager } from "./2_message_manager.js";
|
|
5
5
|
type C = C_ & {
|
|
@@ -9,13 +9,9 @@ export declare class ChatListManager {
|
|
|
9
9
|
#private;
|
|
10
10
|
constructor(c: C);
|
|
11
11
|
reassignChatLastMessage(chatId: number, add?: boolean, sendUpdate?: boolean): Promise<() => Promise<void>>;
|
|
12
|
-
tryGetChatId(username: string): number | null;
|
|
13
|
-
getChatAnywhere(chatId: number): [Chat | undefined, number];
|
|
14
|
-
handelUpdateFolderPeers(update: types.UpdateFolderPeers): Promise<void>;
|
|
15
|
-
handleUpdatePinnedDialogs(update: types.UpdatePinnedDialogs): Promise<void>;
|
|
16
|
-
handleUpdateChannel(update: types.UpdateChannel): Promise<void>;
|
|
17
|
-
handleUpdateChat(update: types.UpdateChat): Promise<void>;
|
|
18
|
-
handleUpdateUser(update: types.UpdateUser | types.UpdateUserName): Promise<void>;
|
|
19
12
|
getChats(from?: "archived" | "main", after?: Chat, limit?: number): Promise<Chat[]>;
|
|
13
|
+
static canHandleUpdate(update: enums.Update): update is types.UpdateNewMessage | types.UpdateNewChannelMessage | types.UpdatePinnedDialogs | types.UpdateFolderPeers | types.UpdateChannel | types.UpdateChat | types.UpdateUser | types.UpdateUserName;
|
|
14
|
+
handleUpdate(update: types.UpdateNewMessage | types.UpdateNewChannelMessage | types.UpdatePinnedDialogs | types.UpdateFolderPeers | types.UpdateChannel | types.UpdateChat | types.UpdateUser | types.UpdateUserName): Promise<void>;
|
|
15
|
+
getChat(chatId: ID): Promise<Chat>;
|
|
20
16
|
}
|
|
21
17
|
export {};
|