@mtkruto/node 0.1.132 → 0.1.134
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/3_errors.d.ts +519 -510
- package/esm/3_errors.js +521 -509
- package/esm/3_types.d.ts +19 -7
- package/esm/3_types.js +19 -7
- package/esm/4_constants.d.ts +2 -2
- package/esm/4_constants.js +2 -2
- package/esm/4_errors.d.ts +7 -12
- package/esm/4_errors.js +6 -7
- package/esm/5_client.d.ts +3 -3
- package/esm/5_client.js +3 -3
- package/esm/client/0_utilities.d.ts +30 -2
- package/esm/client/0_utilities.js +13 -5
- package/esm/client/1_composer.d.ts +30 -0
- package/esm/client/{4_composer.js → 1_composer.js} +15 -2
- package/esm/client/2_client_plain.d.ts +1 -1
- package/esm/client/2_client_plain.js +1 -1
- package/esm/client/{3_types.d.ts → 3_params.d.ts} +68 -172
- package/esm/client/3_params.js +1 -0
- package/esm/client/{5_client.d.ts → 4_client.d.ts} +89 -57
- package/esm/client/{5_client.js → 4_client.js} +499 -308
- package/esm/client/5_composer.d.ts +4 -0
- package/esm/client/5_composer.js +3 -0
- package/esm/storage/0_storage.d.ts +4 -1
- package/esm/storage/0_storage.js +36 -7
- package/esm/storage/1_storage_indexed_db.d.ts +6 -2
- package/esm/storage/1_storage_indexed_db.js +7 -5
- package/esm/storage/1_storage_local_storage.d.ts +1 -1
- package/esm/storage/1_storage_local_storage.js +1 -1
- package/esm/storage/1_storage_memory.d.ts +1 -1
- package/esm/storage/1_storage_memory.js +1 -1
- package/esm/storage/1_storage_session_storage.d.ts +1 -1
- package/esm/storage/1_storage_session_storage.js +1 -1
- package/esm/tl/2_types.d.ts +313 -24
- package/esm/tl/2_types.js +982 -46
- package/esm/tl/3_functions.d.ts +95 -32
- package/esm/tl/3_functions.js +227 -66
- package/esm/tl/3_utilities.d.ts +1 -0
- package/esm/tl/3_utilities.js +14 -0
- package/esm/tl/6_message.js +1 -1
- package/esm/types/0_authorization_state.d.ts +5 -0
- package/esm/types/0_authorization_state.js +1 -0
- package/esm/types/0_chat_photo.d.ts +22 -21
- package/esm/types/0_connection_state.d.ts +17 -0
- package/esm/types/0_connection_state.js +1 -0
- package/esm/types/0_giveaway_parameters.d.ts +9 -0
- package/esm/types/0_giveaway_parameters.js +9 -0
- package/esm/types/0_login_url.d.ts +0 -4
- package/esm/types/0_mask_position.d.ts +0 -4
- package/esm/types/0_message_entity.d.ts +91 -74
- package/esm/types/0_message_identifier.d.ts +4 -0
- package/esm/types/0_message_identifier.js +1 -0
- package/esm/types/0_network_statistics_entry.d.ts +4 -0
- package/esm/types/0_network_statistics_entry.js +1 -0
- package/esm/types/0_reaction.d.ts +14 -10
- package/esm/types/0_reaction.js +29 -1
- package/esm/types/1__getters.d.ts +3 -0
- package/esm/types/1_bot_command_scope.d.ts +32 -27
- package/esm/types/1_chat_p.d.ts +77 -68
- package/esm/types/1_giveaway.d.ts +8 -0
- package/esm/types/1_giveaway.js +7 -0
- package/esm/types/1_keyboard_button.d.ts +41 -57
- package/esm/types/1_keyboard_button.js +3 -0
- package/esm/types/1_message_reaction.d.ts +14 -0
- package/esm/types/1_message_reaction.js +22 -0
- package/esm/types/1_network_statistics.d.ts +5 -0
- package/esm/types/1_network_statistics.js +1 -0
- package/esm/types/1_poll.d.ts +0 -13
- package/esm/types/1_reaction_count.d.ts +7 -0
- package/esm/types/1_reaction_count.js +6 -0
- package/esm/types/1_user.d.ts +2 -2
- package/esm/types/2_game.d.ts +0 -7
- package/esm/types/2_inline_keyboard_button.d.ts +36 -37
- package/esm/types/2_inline_query.d.ts +0 -6
- package/esm/types/2_message_interactions.d.ts +8 -0
- package/esm/types/2_message_interactions.js +1 -0
- package/esm/types/2_message_reaction_count.d.ts +8 -0
- package/esm/types/2_message_reaction_count.js +1 -0
- package/esm/types/2_reply_keyboard_markup.d.ts +0 -7
- package/esm/types/3_inline_keyboard_markup.d.ts +0 -2
- package/esm/types/4_message.d.ts +457 -0
- package/esm/types/{3_message.js → 4_message.js} +216 -129
- package/{script/types/4_callback_query.d.ts → esm/types/5_callback_query.d.ts} +1 -1
- package/esm/types/5_chat.d.ts +37 -0
- package/esm/types/{4_chat.js → 5_chat.js} +2 -2
- package/esm/types/6_update.d.ts +134 -0
- package/esm/types/6_update.js +1 -0
- package/package.json +1 -1
- package/script/3_errors.d.ts +519 -510
- package/script/3_errors.js +533 -520
- package/script/3_types.d.ts +19 -7
- package/script/3_types.js +19 -7
- package/script/4_constants.d.ts +2 -2
- package/script/4_constants.js +2 -2
- package/script/4_errors.d.ts +7 -12
- package/script/4_errors.js +5 -6
- package/script/5_client.d.ts +3 -3
- package/script/5_client.js +3 -3
- package/script/client/0_utilities.d.ts +30 -2
- package/script/client/0_utilities.js +15 -6
- package/script/client/1_composer.d.ts +30 -0
- package/script/client/{4_composer.js → 1_composer.js} +17 -4
- package/script/client/2_client_plain.d.ts +1 -1
- package/script/client/2_client_plain.js +2 -2
- package/script/client/{3_types.d.ts → 3_params.d.ts} +68 -172
- package/script/client/3_params.js +2 -0
- package/script/client/{5_client.d.ts → 4_client.d.ts} +89 -57
- package/script/client/{5_client.js → 4_client.js} +505 -314
- package/script/client/5_composer.d.ts +4 -0
- package/script/client/{6_composer.js → 5_composer.js} +2 -2
- package/script/storage/0_storage.d.ts +4 -1
- package/script/storage/0_storage.js +36 -7
- package/script/storage/1_storage_indexed_db.d.ts +6 -2
- package/script/storage/1_storage_indexed_db.js +7 -5
- package/script/storage/1_storage_local_storage.d.ts +1 -1
- package/script/storage/1_storage_local_storage.js +1 -1
- package/script/storage/1_storage_memory.d.ts +1 -1
- package/script/storage/1_storage_memory.js +1 -1
- package/script/storage/1_storage_session_storage.d.ts +1 -1
- package/script/storage/1_storage_session_storage.js +1 -1
- package/script/tl/2_types.d.ts +313 -24
- package/script/tl/2_types.js +1169 -217
- package/script/tl/3_functions.d.ts +95 -32
- package/script/tl/3_functions.js +241 -77
- package/script/tl/3_utilities.d.ts +1 -0
- package/script/tl/3_utilities.js +16 -1
- package/script/tl/6_message.js +1 -1
- package/script/types/0_authorization_state.d.ts +5 -0
- package/script/types/0_authorization_state.js +2 -0
- package/script/types/0_chat_photo.d.ts +22 -21
- package/script/types/0_connection_state.d.ts +17 -0
- package/script/types/0_connection_state.js +2 -0
- package/script/types/0_giveaway_parameters.d.ts +9 -0
- package/script/types/0_giveaway_parameters.js +13 -0
- package/script/types/0_login_url.d.ts +0 -4
- package/script/types/0_mask_position.d.ts +0 -4
- package/script/types/0_message_entity.d.ts +91 -74
- package/script/types/0_message_identifier.d.ts +4 -0
- package/script/types/0_message_identifier.js +2 -0
- package/script/types/0_network_statistics_entry.d.ts +4 -0
- package/script/types/0_network_statistics_entry.js +2 -0
- package/script/types/0_reaction.d.ts +14 -10
- package/script/types/0_reaction.js +33 -0
- package/script/types/1__getters.d.ts +3 -0
- package/script/types/1_bot_command_scope.d.ts +32 -27
- package/script/types/1_chat_p.d.ts +77 -68
- package/script/types/1_giveaway.d.ts +8 -0
- package/script/types/1_giveaway.js +11 -0
- package/script/types/1_keyboard_button.d.ts +41 -57
- package/script/types/1_keyboard_button.js +3 -0
- package/script/types/1_message_reaction.d.ts +14 -0
- package/script/types/1_message_reaction.js +26 -0
- package/script/types/1_network_statistics.d.ts +5 -0
- package/script/types/1_network_statistics.js +2 -0
- package/script/types/1_poll.d.ts +0 -13
- package/script/types/1_reaction_count.d.ts +7 -0
- package/script/types/1_reaction_count.js +10 -0
- package/script/types/1_user.d.ts +2 -2
- package/script/types/2_game.d.ts +0 -7
- package/script/types/2_inline_keyboard_button.d.ts +36 -37
- package/script/types/2_inline_query.d.ts +0 -6
- package/script/types/2_message_interactions.d.ts +8 -0
- package/script/types/2_message_interactions.js +2 -0
- package/script/types/2_message_reaction_count.d.ts +8 -0
- package/script/types/2_message_reaction_count.js +2 -0
- package/script/types/2_reply_keyboard_markup.d.ts +0 -7
- package/script/types/3_inline_keyboard_markup.d.ts +0 -2
- package/script/types/4_message.d.ts +457 -0
- package/script/types/{3_message.js → 4_message.js} +218 -130
- package/{esm/types/4_callback_query.d.ts → script/types/5_callback_query.d.ts} +1 -1
- package/script/types/5_chat.d.ts +37 -0
- package/script/types/{4_chat.js → 5_chat.js} +3 -3
- package/script/types/6_update.d.ts +134 -0
- package/script/types/6_update.js +2 -0
- package/esm/client/3_types.js +0 -11
- package/esm/client/4_composer.d.ts +0 -31
- package/esm/client/6_composer.d.ts +0 -4
- package/esm/client/6_composer.js +0 -3
- package/esm/types/3_message.d.ts +0 -182
- package/esm/types/4_chat.d.ts +0 -34
- package/script/client/3_types.js +0 -15
- package/script/client/4_composer.d.ts +0 -31
- package/script/client/6_composer.d.ts +0 -4
- package/script/types/3_message.d.ts +0 -182
- package/script/types/4_chat.d.ts +0 -34
- /package/esm/client/{1_client_abstract.d.ts → 0_client_abstract.d.ts} +0 -0
- /package/esm/client/{1_client_abstract.js → 0_client_abstract.js} +0 -0
- /package/esm/types/{0_audio.d.ts → 1_audio.d.ts} +0 -0
- /package/esm/types/{0_audio.js → 1_audio.js} +0 -0
- /package/esm/types/{4_callback_query.js → 5_callback_query.js} +0 -0
- /package/script/client/{1_client_abstract.d.ts → 0_client_abstract.d.ts} +0 -0
- /package/script/client/{1_client_abstract.js → 0_client_abstract.js} +0 -0
- /package/script/types/{0_audio.d.ts → 1_audio.d.ts} +0 -0
- /package/script/types/{0_audio.js → 1_audio.js} +0 -0
- /package/script/types/{4_callback_query.js → 5_callback_query.js} +0 -0
|
@@ -2,7 +2,6 @@ import { debug } from "../0_deps.js";
|
|
|
2
2
|
import { cleanObject, UNREACHABLE, ZERO_CHANNEL_ID } from "../1_utilities.js";
|
|
3
3
|
import { as, types } from "../2_tl.js";
|
|
4
4
|
import { FileID, FileType, FileUniqueID, FileUniqueType } from "./0__file_id.js";
|
|
5
|
-
import { constructAudio } from "./0_audio.js";
|
|
6
5
|
import { constructContact } from "./0_contact.js";
|
|
7
6
|
import { constructDice } from "./0_dice.js";
|
|
8
7
|
import { constructForceReply } from "./0_force_reply.js";
|
|
@@ -12,11 +11,14 @@ import { constructReplyKeyboardRemove } from "./0_reply_keyboard_remove.js";
|
|
|
12
11
|
import { constructVenue } from "./0_venue.js";
|
|
13
12
|
import { constructVoice } from "./0_voice.js";
|
|
14
13
|
import { constructAnimation } from "./1_animation.js";
|
|
15
|
-
import {
|
|
14
|
+
import { constructAudio } from "./1_audio.js";
|
|
16
15
|
import { constructChatP } from "./1_chat_p.js";
|
|
17
16
|
import { constructDocument } from "./1_document.js";
|
|
17
|
+
import { constructGiveaway } from "./1_giveaway.js";
|
|
18
|
+
import { constructMessageReaction } from "./1_message_reaction.js";
|
|
18
19
|
import { constructPhoto } from "./1_photo.js";
|
|
19
20
|
import { constructPoll } from "./1_poll.js";
|
|
21
|
+
import { constructReplyQuote } from "./1_reply_quote.js";
|
|
20
22
|
import { constructSticker } from "./1_sticker.js";
|
|
21
23
|
import { constructUser } from "./1_user.js";
|
|
22
24
|
import { constructVideoNote } from "./1_video_note.js";
|
|
@@ -25,6 +27,54 @@ import { constructGame } from "./2_game.js";
|
|
|
25
27
|
import { constructReplyKeyboardMarkup } from "./2_reply_keyboard_markup.js";
|
|
26
28
|
import { constructInlineKeyboardMarkup } from "./3_inline_keyboard_markup.js";
|
|
27
29
|
const d = debug("types/Message");
|
|
30
|
+
const keys = {
|
|
31
|
+
text: ["text"],
|
|
32
|
+
photo: ["photo"],
|
|
33
|
+
document: ["document"],
|
|
34
|
+
video: ["video"],
|
|
35
|
+
sticker: ["sticker"],
|
|
36
|
+
animation: ["animation"],
|
|
37
|
+
voice: ["voice"],
|
|
38
|
+
audio: ["audio"],
|
|
39
|
+
dice: ["dice"],
|
|
40
|
+
videoNote: ["videoNote"],
|
|
41
|
+
contact: ["contact"],
|
|
42
|
+
game: ["game"],
|
|
43
|
+
poll: ["poll"],
|
|
44
|
+
venue: ["venue"],
|
|
45
|
+
location: ["location"],
|
|
46
|
+
newChatMembers: ["newChatMembers"],
|
|
47
|
+
leftChatMember: ["leftChatMember"],
|
|
48
|
+
newChatTitle: ["newChatTitle"],
|
|
49
|
+
newChatPhoto: ["newChatPhoto"],
|
|
50
|
+
deletedChatPhoto: ["deletedChatPhoto"],
|
|
51
|
+
groupCreated: ["groupCreated", "newChatMembers"],
|
|
52
|
+
supergroupCreated: ["supergroupCreated"],
|
|
53
|
+
channelCreated: ["channelCreated"],
|
|
54
|
+
newAutoDeleteTime: ["newAutoDeleteTime"],
|
|
55
|
+
chatMigratedTo: ["chatMigratedTo"],
|
|
56
|
+
chatMigratedFrom: ["chatMigratedFrom"],
|
|
57
|
+
pinnedMessage: ["pinnedMessage"],
|
|
58
|
+
userShared: ["userShared"],
|
|
59
|
+
writeAccessAllowed: ["writeAccessAllowed"],
|
|
60
|
+
forumTopicCreated: ["forumTopicCreated"],
|
|
61
|
+
forumTopicEdited: ["forumTopicEdited"],
|
|
62
|
+
forumTopicClosed: ["forumTopicClosed"],
|
|
63
|
+
forumTopicReopened: ["forumTopicReopened"],
|
|
64
|
+
videoChatScheduled: ["videoChatScheduled"],
|
|
65
|
+
videoChatStarted: ["videoChatStarted"],
|
|
66
|
+
videoChatEnded: ["videoChatEnded"],
|
|
67
|
+
giveaway: ["giveaway"],
|
|
68
|
+
unsupported: ["unsupported"],
|
|
69
|
+
};
|
|
70
|
+
export function assertMessageType(message, type) {
|
|
71
|
+
for (const key of keys[type]) {
|
|
72
|
+
if (!(key in message) || message[key] === undefined) {
|
|
73
|
+
UNREACHABLE();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return message;
|
|
77
|
+
}
|
|
28
78
|
async function getSender(message_, getEntity) {
|
|
29
79
|
if (message_.from_id instanceof types.PeerUser) {
|
|
30
80
|
const entity = await getEntity(message_.from_id);
|
|
@@ -71,116 +121,133 @@ async function constructServiceMessage(message_, chat, getEntity, getMessage) {
|
|
|
71
121
|
};
|
|
72
122
|
Object.assign(message, await getSender(message_, getEntity));
|
|
73
123
|
if (message_.action instanceof types.MessageActionChatAddUser) {
|
|
74
|
-
|
|
124
|
+
const newChatMembers = new Array();
|
|
75
125
|
for (const user_ of message_.action.users) {
|
|
76
126
|
const entity = await getEntity(new types.PeerUser({ user_id: user_ }));
|
|
77
127
|
if (entity) {
|
|
78
128
|
const user = constructUser(entity);
|
|
79
|
-
|
|
129
|
+
newChatMembers.push(user);
|
|
80
130
|
}
|
|
81
131
|
else {
|
|
82
132
|
UNREACHABLE();
|
|
83
133
|
}
|
|
84
134
|
}
|
|
135
|
+
return { ...message, newChatMembers };
|
|
85
136
|
}
|
|
86
137
|
else if (message_.action instanceof types.MessageActionChatDeleteUser) {
|
|
87
138
|
const entity = await getEntity(new types.PeerUser({ user_id: message_.action.user_id }));
|
|
88
139
|
if (entity) {
|
|
89
140
|
const user = constructUser(entity);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
else {
|
|
93
|
-
UNREACHABLE();
|
|
141
|
+
const leftChatMember = user;
|
|
142
|
+
return { ...message, leftChatMember };
|
|
94
143
|
}
|
|
95
144
|
}
|
|
96
145
|
else if (message_.action instanceof types.MessageActionChatEditTitle) {
|
|
97
|
-
|
|
146
|
+
const newChatTitle = message_.action.title;
|
|
147
|
+
return { ...message, newChatTitle };
|
|
98
148
|
}
|
|
99
149
|
else if (message_.action instanceof types.MessageActionChatEditPhoto) {
|
|
100
|
-
|
|
150
|
+
const newChatPhoto = constructPhoto(message_.action.photo[as](types.Photo));
|
|
151
|
+
return { ...message, newChatPhoto };
|
|
101
152
|
}
|
|
102
153
|
else if (message_.action instanceof types.MessageActionChatDeletePhoto) {
|
|
103
|
-
|
|
154
|
+
const deletedChatPhoto = true;
|
|
155
|
+
return { ...message, deletedChatPhoto };
|
|
104
156
|
}
|
|
105
157
|
else if (message_.action instanceof types.MessageActionChatCreate) {
|
|
106
|
-
|
|
107
|
-
|
|
158
|
+
const groupCreated = true;
|
|
159
|
+
const newChatMembers = new Array();
|
|
108
160
|
for (const user_ of message_.action.users) {
|
|
109
161
|
const entity = await getEntity(new types.PeerUser({ user_id: user_ }));
|
|
110
162
|
if (entity) {
|
|
111
163
|
const user = constructUser(entity);
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
UNREACHABLE();
|
|
164
|
+
newChatMembers.push(user);
|
|
116
165
|
}
|
|
117
166
|
}
|
|
167
|
+
return { ...message, groupCreated, newChatMembers };
|
|
118
168
|
}
|
|
119
169
|
else if (message_.action instanceof types.MessageActionChannelCreate) {
|
|
120
170
|
if (message.chat.type == "channel") {
|
|
121
|
-
|
|
171
|
+
const channelCreated = true;
|
|
172
|
+
return { ...message, channelCreated };
|
|
122
173
|
}
|
|
123
174
|
else if (message.chat.type == "supergroup") {
|
|
124
|
-
|
|
175
|
+
const supergroupCreated = true;
|
|
176
|
+
return { ...message, supergroupCreated };
|
|
125
177
|
}
|
|
126
178
|
else {
|
|
127
|
-
UNREACHABLE();
|
|
179
|
+
// UNREACHABLE();
|
|
128
180
|
}
|
|
129
181
|
}
|
|
130
182
|
else if (message_.action instanceof types.MessageActionChatMigrateTo) {
|
|
131
|
-
|
|
183
|
+
const chatMigratedTo = ZERO_CHANNEL_ID + Number(-message_.action.channel_id);
|
|
184
|
+
return { ...message, chatMigratedTo };
|
|
132
185
|
}
|
|
133
186
|
else if (message_.action instanceof types.MessageActionChannelMigrateFrom) {
|
|
134
|
-
|
|
187
|
+
const chatMigratedFrom = Number(-message_.action.chat_id);
|
|
188
|
+
return { ...message, chatMigratedFrom };
|
|
135
189
|
}
|
|
136
190
|
else if (message_.action instanceof types.MessageActionPinMessage) {
|
|
137
191
|
const { replyToMessage } = await getReply(message_, chat, getMessage);
|
|
138
|
-
|
|
192
|
+
if (replyToMessage) {
|
|
193
|
+
const pinnedMessage = replyToMessage;
|
|
194
|
+
return { ...message, pinnedMessage };
|
|
195
|
+
}
|
|
139
196
|
}
|
|
140
197
|
else if (message_.action instanceof types.MessageActionRequestedPeer) {
|
|
141
|
-
const user = message_.action.
|
|
142
|
-
|
|
198
|
+
const user = message_.action.peers[0][as](types.PeerUser);
|
|
199
|
+
const userShared = { requestId: message_.action.button_id, userId: Number(user.user_id) };
|
|
200
|
+
return { ...message, userShared };
|
|
143
201
|
}
|
|
144
202
|
else if (message_.action instanceof types.MessageActionBotAllowed) {
|
|
145
203
|
const webAppName = message_.action.app ? message_.action.app[as](types.BotApp).title : undefined;
|
|
146
|
-
|
|
204
|
+
const writeAccessAllowed = { webAppName };
|
|
205
|
+
return { ...message, writeAccessAllowed };
|
|
147
206
|
}
|
|
148
207
|
else if (message_.action instanceof types.MessageActionTopicCreate) {
|
|
149
|
-
|
|
208
|
+
const forumTopicCreated = {
|
|
150
209
|
name: message_.action.title,
|
|
151
210
|
iconColor: "#" + message_.action.icon_color.toString(16).padStart(6, "0"),
|
|
152
211
|
iconCutsomEmojiId: message_.action.icon_emoji_id ? String(message_.action.icon_emoji_id) : undefined,
|
|
153
212
|
};
|
|
213
|
+
return { ...message, forumTopicCreated };
|
|
154
214
|
}
|
|
155
215
|
else if (message_.action instanceof types.MessageActionTopicEdit) {
|
|
156
216
|
if (message_.action.closed) {
|
|
157
|
-
|
|
217
|
+
const forumTopicClosed = true;
|
|
218
|
+
return { ...message, forumTopicClosed };
|
|
158
219
|
}
|
|
159
220
|
else if (message_.action.title || message_.action.icon_emoji_id) {
|
|
160
|
-
|
|
161
|
-
name: message_.action.title,
|
|
221
|
+
const forumTopicEdited = {
|
|
222
|
+
name: message_.action.title ?? "",
|
|
162
223
|
iconCutsomEmojiId: message_.action.icon_emoji_id ? String(message_.action.icon_emoji_id) : undefined,
|
|
163
224
|
};
|
|
225
|
+
return { ...message, forumTopicEdited };
|
|
164
226
|
}
|
|
165
227
|
else {
|
|
166
|
-
|
|
228
|
+
const forumTopicReopened = true;
|
|
229
|
+
return { ...message, forumTopicReopened };
|
|
167
230
|
}
|
|
168
231
|
}
|
|
169
232
|
else if (message_.action instanceof types.MessageActionGroupCallScheduled) {
|
|
170
|
-
|
|
233
|
+
const videoChatScheduled = { startDate: new Date(message_.action.schedule_date * 1000) };
|
|
234
|
+
return { ...message, videoChatScheduled };
|
|
171
235
|
}
|
|
172
236
|
else if (message_.action instanceof types.MessageActionGroupCall) {
|
|
173
237
|
if (message_.action.duration) {
|
|
174
|
-
|
|
238
|
+
const videoChatEnded = { duration: message_.action.duration };
|
|
239
|
+
return { ...message, videoChatEnded };
|
|
175
240
|
}
|
|
176
241
|
else {
|
|
177
|
-
|
|
242
|
+
const videoChatStarted = true;
|
|
243
|
+
return { ...message, videoChatStarted };
|
|
178
244
|
}
|
|
179
245
|
}
|
|
180
246
|
else if (message_.action instanceof types.MessageActionSetMessagesTTL) {
|
|
181
|
-
|
|
247
|
+
const newAutoDeleteTime = message_.action.period || 0;
|
|
248
|
+
return { ...message, newAutoDeleteTime };
|
|
182
249
|
}
|
|
183
|
-
return
|
|
250
|
+
return { ...message, unsupported: true };
|
|
184
251
|
}
|
|
185
252
|
export async function constructMessage(message_, getEntity, getMessage, getStickerSetName, getReply_ = true) {
|
|
186
253
|
if (!(message_ instanceof types.Message) && !(message_ instanceof types.MessageService)) {
|
|
@@ -229,9 +296,14 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
|
|
|
229
296
|
link,
|
|
230
297
|
date: new Date(message_.date * 1000),
|
|
231
298
|
views: message_.views,
|
|
299
|
+
forwards: message_.forwards,
|
|
232
300
|
isTopicMessage: false,
|
|
233
301
|
hasProtectedContent: message_.noforwards || false,
|
|
234
302
|
};
|
|
303
|
+
if (message_.reactions) {
|
|
304
|
+
const recentReactions = message_.reactions.recent_reactions ?? [];
|
|
305
|
+
message.reactions = message_.reactions.results.map((v) => constructMessageReaction(v, recentReactions));
|
|
306
|
+
}
|
|
235
307
|
if (message_.reply_to instanceof types.MessageReplyHeader && message_.reply_to.reply_to_msg_id) {
|
|
236
308
|
if (message_.reply_to.quote) {
|
|
237
309
|
message.replyQuote = constructReplyQuote(message_.reply_to.quote_text, message_.reply_to.quote_offset, message_.reply_to.quote_entities);
|
|
@@ -242,31 +314,6 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
|
|
|
242
314
|
Object.assign(message, await getReply(message_, chat_, getMessage));
|
|
243
315
|
}
|
|
244
316
|
Object.assign(message, await getSender(message_, getEntity));
|
|
245
|
-
if (message_.media instanceof types.MessageMediaPhoto || message_.media instanceof types.MessageMediaDocument) {
|
|
246
|
-
message.hasMediaSpoiler = message_.media.spoiler || false;
|
|
247
|
-
}
|
|
248
|
-
if (message_.grouped_id != undefined) {
|
|
249
|
-
message.mediaGroupId = String(message_.grouped_id);
|
|
250
|
-
}
|
|
251
|
-
if (message_.message) {
|
|
252
|
-
if (message_.media == undefined) {
|
|
253
|
-
message.text = message_.message;
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
message.caption = message_.message;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
if (message_.entities != undefined) {
|
|
260
|
-
if (message_.media == undefined) {
|
|
261
|
-
message.entities = message_.entities.map(constructMessageEntity).filter((v) => v);
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
message.captionEntities = message_.entities.map(constructMessageEntity).filter((v) => v);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
if (message_.edit_date != undefined) {
|
|
268
|
-
message.editDate = new Date(message_.edit_date * 1000);
|
|
269
|
-
}
|
|
270
317
|
if (message_.reply_markup) {
|
|
271
318
|
if (message_.reply_markup instanceof types.ReplyKeyboardMarkup) {
|
|
272
319
|
message.replyMarkup = constructReplyKeyboardMarkup(message_.reply_markup);
|
|
@@ -321,81 +368,121 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
|
|
|
321
368
|
}
|
|
322
369
|
}
|
|
323
370
|
}
|
|
324
|
-
if (message_.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
371
|
+
if (message_.grouped_id != undefined) {
|
|
372
|
+
message.mediaGroupId = String(message_.grouped_id);
|
|
373
|
+
}
|
|
374
|
+
if (message_.edit_date != undefined) {
|
|
375
|
+
message.editDate = new Date(message_.edit_date * 1000);
|
|
376
|
+
}
|
|
377
|
+
if (message_.message && message_.media === undefined) {
|
|
378
|
+
return {
|
|
379
|
+
...message,
|
|
380
|
+
text: message_.message,
|
|
381
|
+
entities: message_.entities?.map(constructMessageEntity).filter((v) => !!v) ?? [],
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
const messageMedia = {
|
|
385
|
+
...message,
|
|
386
|
+
caption: message_.message,
|
|
387
|
+
captionEntities: message_.entities?.map(constructMessageEntity).filter((v) => !!v) ?? [],
|
|
388
|
+
};
|
|
389
|
+
if (message_.media instanceof types.MessageMediaPhoto || message_.media instanceof types.MessageMediaDocument) {
|
|
390
|
+
messageMedia.hasMediaSpoiler = message_.media.spoiler || false;
|
|
391
|
+
}
|
|
392
|
+
let m = null;
|
|
393
|
+
if (message_.media instanceof types.MessageMediaPhoto) {
|
|
394
|
+
if (!message_.media.photo) {
|
|
395
|
+
UNREACHABLE();
|
|
329
396
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
if (audio.voice) {
|
|
360
|
-
message.voice = constructVoice(document, audio, getFileId(FileType.Voice), fileUniqueId);
|
|
361
|
-
}
|
|
362
|
-
else {
|
|
363
|
-
message.audio = constructAudio(document, audio, getFileId(FileType.Audio), fileUniqueId);
|
|
364
|
-
}
|
|
397
|
+
const photo = constructPhoto(message_.media.photo[as](types.Photo));
|
|
398
|
+
m = { ...messageMedia, photo };
|
|
399
|
+
}
|
|
400
|
+
else if (message_.media instanceof types.MessageMediaDice) {
|
|
401
|
+
const dice = constructDice(message_.media);
|
|
402
|
+
m = { ...message, dice };
|
|
403
|
+
}
|
|
404
|
+
else if (message_.media instanceof types.MessageMediaDocument) {
|
|
405
|
+
const { document } = message_.media;
|
|
406
|
+
if (document instanceof types.Document) {
|
|
407
|
+
const getFileId = (type) => new FileID(null, null, type, document.dc_id, {
|
|
408
|
+
mediaId: document.id,
|
|
409
|
+
accessHash: document.access_hash,
|
|
410
|
+
fileReference: document.file_reference,
|
|
411
|
+
}).encode();
|
|
412
|
+
const fileUniqueId = new FileUniqueID(FileUniqueType.Document, { mediaId: document.id }).encode();
|
|
413
|
+
const animated = document.attributes.find((v) => v instanceof types.DocumentAttributeAnimated);
|
|
414
|
+
const audio = document.attributes.find((v) => v instanceof types.DocumentAttributeAudio);
|
|
415
|
+
const fileName = document.attributes.find((v) => v instanceof types.DocumentAttributeFilename);
|
|
416
|
+
const sticker = document.attributes.find((v) => v instanceof types.DocumentAttributeSticker);
|
|
417
|
+
const video = document.attributes.find((v) => v instanceof types.DocumentAttributeVideo);
|
|
418
|
+
if (animated) {
|
|
419
|
+
const animation = constructAnimation(document, video, fileName, getFileId(FileType.Animation), fileUniqueId);
|
|
420
|
+
m = { ...messageMedia, animation };
|
|
421
|
+
}
|
|
422
|
+
else if (video) {
|
|
423
|
+
if (video.round_message) {
|
|
424
|
+
const videoNote = constructVideoNote(document, video, getFileId(FileType.VideoNote), fileUniqueId);
|
|
425
|
+
m = { ...message, videoNote };
|
|
365
426
|
}
|
|
366
|
-
else
|
|
367
|
-
|
|
427
|
+
else {
|
|
428
|
+
const video_ = constructVideo(document, video, fileName?.file_name, getFileId(FileType.Video), fileUniqueId);
|
|
429
|
+
m = { ...messageMedia, video: video_ };
|
|
368
430
|
}
|
|
369
|
-
|
|
370
|
-
|
|
431
|
+
}
|
|
432
|
+
else if (audio) {
|
|
433
|
+
if (audio.voice) {
|
|
434
|
+
const voice = constructVoice(document, audio, getFileId(FileType.Voice), fileUniqueId);
|
|
435
|
+
m = { ...messageMedia, voice };
|
|
371
436
|
}
|
|
372
437
|
else {
|
|
373
|
-
|
|
438
|
+
const audio_ = constructAudio(document, audio, getFileId(FileType.Audio), fileUniqueId);
|
|
439
|
+
m = { ...messageMedia, audio: audio_ };
|
|
374
440
|
}
|
|
375
441
|
}
|
|
442
|
+
else if (sticker) {
|
|
443
|
+
const sticker = await constructSticker(document, getFileId(FileType.Sticker), fileUniqueId, getStickerSetName);
|
|
444
|
+
m = { ...message, sticker };
|
|
445
|
+
}
|
|
446
|
+
else if (fileName) {
|
|
447
|
+
const document_ = constructDocument(document, fileName, getFileId(FileType.Document), fileUniqueId);
|
|
448
|
+
m = { ...messageMedia, document: document_ };
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
const document_ = constructDocument(document, new types.DocumentAttributeFilename({ file_name: "Unknown" }), getFileId(FileType.Document), fileUniqueId);
|
|
452
|
+
m = { ...messageMedia, document: document_ };
|
|
453
|
+
}
|
|
376
454
|
}
|
|
377
|
-
else if (message_.media instanceof types.MessageMediaContact) {
|
|
378
|
-
message.contact = constructContact(message_.media);
|
|
379
|
-
}
|
|
380
|
-
else if (message_.media instanceof types.MessageMediaGame) {
|
|
381
|
-
message.game = constructGame(message_.media);
|
|
382
|
-
}
|
|
383
|
-
else if (message_.media instanceof types.MessageMediaPoll) {
|
|
384
|
-
message.poll = constructPoll(message_.media);
|
|
385
|
-
}
|
|
386
|
-
else if (message_.media instanceof types.MessageMediaVenue) {
|
|
387
|
-
message.venue = constructVenue(message_.media);
|
|
388
|
-
}
|
|
389
|
-
else if (message_.media instanceof types.MessageMediaGeo || message_.media instanceof types.MessageMediaGeoLive) {
|
|
390
|
-
message.location = constructLocation(message_.media);
|
|
391
|
-
}
|
|
392
|
-
else if (message_.media instanceof types.MessageMediaWebPage) {
|
|
393
|
-
//
|
|
394
|
-
}
|
|
395
|
-
else {
|
|
396
|
-
// not implemented
|
|
397
|
-
UNREACHABLE();
|
|
398
|
-
}
|
|
399
455
|
}
|
|
400
|
-
|
|
456
|
+
else if (message_.media instanceof types.MessageMediaContact) {
|
|
457
|
+
const contact = constructContact(message_.media);
|
|
458
|
+
m = { ...messageMedia, contact };
|
|
459
|
+
}
|
|
460
|
+
else if (message_.media instanceof types.MessageMediaGame) {
|
|
461
|
+
const game = constructGame(message_.media);
|
|
462
|
+
m = { ...message, game };
|
|
463
|
+
}
|
|
464
|
+
else if (message_.media instanceof types.MessageMediaPoll) {
|
|
465
|
+
const poll = constructPoll(message_.media);
|
|
466
|
+
m = { ...message, poll };
|
|
467
|
+
}
|
|
468
|
+
else if (message_.media instanceof types.MessageMediaVenue) {
|
|
469
|
+
const venue = constructVenue(message_.media);
|
|
470
|
+
m = { ...message, venue };
|
|
471
|
+
}
|
|
472
|
+
else if (message_.media instanceof types.MessageMediaGeo || message_.media instanceof types.MessageMediaGeoLive) {
|
|
473
|
+
const location = constructLocation(message_.media);
|
|
474
|
+
m = { ...message, location };
|
|
475
|
+
}
|
|
476
|
+
else if (message_.media instanceof types.MessageMediaWebPage) {
|
|
477
|
+
// TODO: implement
|
|
478
|
+
}
|
|
479
|
+
else if (message_.media instanceof types.MessageMediaGiveaway) {
|
|
480
|
+
const giveaway = constructGiveaway(message_.media);
|
|
481
|
+
m = { ...message, giveaway };
|
|
482
|
+
}
|
|
483
|
+
if (m == null) {
|
|
484
|
+
const unsupported = true;
|
|
485
|
+
m = { ...message, unsupported };
|
|
486
|
+
}
|
|
487
|
+
return cleanObject(m);
|
|
401
488
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { types } from "../2_tl.js";
|
|
2
2
|
import { EntityGetter } from "./1__getters.js";
|
|
3
3
|
import { User } from "./1_user.js";
|
|
4
|
-
import { Message, MessageGetter } from "./
|
|
4
|
+
import { Message, MessageGetter } from "./4_message.js";
|
|
5
5
|
export interface CallbackQuery {
|
|
6
6
|
id: string;
|
|
7
7
|
from: User;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { enums, types } from "../2_tl.js";
|
|
2
|
+
import { ChatPhotoChat, ChatPhotoUser } from "./0_chat_photo.js";
|
|
3
|
+
import { EntityGetter } from "./1__getters.js";
|
|
4
|
+
import { ChatPChannel, ChatPGroup, ChatPPrivate, ChatPSupergroup } from "./1_chat_p.js";
|
|
5
|
+
import { StickerSetNameGetter } from "./1_sticker.js";
|
|
6
|
+
import { Message, MessageGetter } from "./4_message.js";
|
|
7
|
+
/** @unlisted */
|
|
8
|
+
export interface ChatBase {
|
|
9
|
+
order: string;
|
|
10
|
+
lastMessage?: Omit<Message, "replyToMessage">;
|
|
11
|
+
pinned: number;
|
|
12
|
+
}
|
|
13
|
+
/** @unlisted */
|
|
14
|
+
export interface ChatChannel extends ChatBase, ChatPChannel {
|
|
15
|
+
also?: string[];
|
|
16
|
+
photo?: ChatPhotoChat;
|
|
17
|
+
}
|
|
18
|
+
/** @unlisted */
|
|
19
|
+
export interface ChatSupergroup extends ChatBase, ChatPSupergroup {
|
|
20
|
+
also?: string[];
|
|
21
|
+
photo?: ChatPhotoChat;
|
|
22
|
+
}
|
|
23
|
+
/** @unlisted */
|
|
24
|
+
export interface ChatGroup extends ChatBase, ChatPGroup {
|
|
25
|
+
photo?: ChatPhotoChat;
|
|
26
|
+
}
|
|
27
|
+
/** @unlisted */
|
|
28
|
+
export interface ChatPrivate extends ChatBase, ChatPPrivate {
|
|
29
|
+
also?: string[];
|
|
30
|
+
photo?: ChatPhotoUser;
|
|
31
|
+
}
|
|
32
|
+
export type Chat = ChatChannel | ChatSupergroup | ChatGroup | ChatPrivate;
|
|
33
|
+
export declare function getChatOrder(lastMessage: Omit<Message, "replyToMessage"> | undefined, pinned: number): string;
|
|
34
|
+
export declare function constructChat(dialog: enums.Dialog, dialogs: types.messages.Dialogs | types.messages.DialogsSlice, pinnedChats: number[], getEntity: EntityGetter, getMessage: MessageGetter, getStickerSetName: StickerSetNameGetter): Promise<Chat>;
|
|
35
|
+
export declare function constructChat2(entity: types.User | types.Chat | types.ChatForbidden | types.Channel | types.ChannelForbidden, pinned: number, lastMessage: Omit<Message, "replyToMessage"> | undefined): Chat;
|
|
36
|
+
export declare function constructChat3(chatId: number, pinned: number, lastMessage: Omit<Message, "replyToMessage"> | undefined, getEntity: EntityGetter): Promise<Chat | null>;
|
|
37
|
+
export declare function constructChat4(chatId: number, pinned: number, lastMessageId: number, getEntity: EntityGetter, getMessage: MessageGetter): Promise<Chat | null>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { cleanObject, UNREACHABLE } from "../1_utilities.js";
|
|
2
2
|
import { chatIdToPeer, peerToChatId, types } from "../2_tl.js";
|
|
3
|
-
import { constructChatP } from "./1_chat_p.js";
|
|
4
3
|
import { constructChatPhoto } from "./0_chat_photo.js";
|
|
5
|
-
import {
|
|
4
|
+
import { constructChatP } from "./1_chat_p.js";
|
|
5
|
+
import { constructMessage } from "./4_message.js";
|
|
6
6
|
function getChatPAlsoPhoto(entity) {
|
|
7
7
|
let chatP;
|
|
8
8
|
let also = undefined;
|