Skip to content

Commit f874b7a

Browse files
committed
feat(updates): migrate to 19 polling version
1 parent 8cfac86 commit f874b7a

File tree

8 files changed

+70
-41
lines changed

8 files changed

+70
-41
lines changed

packages/vk-io/src/structures/contexts/dialog-flags.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@ import { kSerializeData } from '../../utils/constants';
88
export type DialogFlagsContextType = 'dialog_flags';
99

1010
export type DialogFlagsContextSubType =
11-
'dialog_flags_replace'
12-
| 'dialog_flags_add'
11+
'dialog_flags_add'
1312
| 'dialog_flags_delete';
1413

1514
const subTypes: Record<string, DialogFlagsContextSubType> = {
1615
10: 'dialog_flags_delete',
17-
11: 'dialog_flags_replace',
1816
12: 'dialog_flags_add',
1917
};
2018

packages/vk-io/src/structures/contexts/dialog-messages.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@ import { kSerializeData } from '../../utils/constants';
55

66
export type DialogMessagesContextType = 'dialog_messages';
77

8-
export type DialogMessagesContextSubType =
9-
'dialog_messages_delete'
10-
| 'dialog_messages_restore';
8+
export type DialogMessagesContextSubType = 'dialog_messages_delete';
119

1210
const subTypes: Record<number, DialogMessagesContextSubType> = {
13-
13: 'dialog_messages_delete',
14-
14: 'dialog_messages_restore',
11+
10013: 'dialog_messages_delete',
1512
};
1613
export interface IDialogMessagesContextPayload {
1714
local_id: number;
@@ -55,10 +52,9 @@ export class DialogMessagesContext<S = ContextDefaultState>
5552

5653
/**
5754
* Checks if messages are restored
55+
* @deprecated
5856
*/
59-
public get isRestore(): boolean {
60-
return this.subTypes.includes('dialog_messages_restore');
61-
}
57+
public readonly isRestore = false;
6258

6359
/**
6460
* Returns the peer identifier

packages/vk-io/src/structures/contexts/helpers/transform-message.ts

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,24 @@ const attachmentHandlers = {
8181
/**
8282
* Transform message to Object
8383
*/
84-
export function transformMessage({
85-
1: id,
86-
2: flags,
87-
3: peer_id,
88-
4: date,
89-
5: text,
90-
6: extra,
91-
7: attachments,
92-
8: random_id,
93-
9: conversation_message_id,
94-
10: update_time,
95-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
96-
}: [
84+
export function transformMessage(rawMessage: [
85+
// type
9786
number,
87+
// conversation message id
9888
number,
89+
// flags
9990
number,
91+
// minor id
10092
number,
93+
// peer id
10194
number,
95+
// timestamp
96+
number,
97+
98+
// text
10299
string,
100+
101+
// additional
103102
{
104103
title?: string;
105104
from?: string;
@@ -115,16 +114,39 @@ export function transformMessage({
115114

116115
payload?: string;
117116
},
117+
// attachments
118118
// eslint-disable-next-line @typescript-eslint/no-explicit-any
119119
Record<string, any> & {
120120
fwd?: string;
121121
reply?: string;
122122
},
123+
// randomId
123124
number,
125+
// messageId
124126
number,
127+
// updateTimestamp
125128
number
126129
// eslint-disable-next-line @typescript-eslint/no-explicit-any,
127130
]): IMessageContextPayload['message'] {
131+
if (rawMessage[0] !== 10004) {
132+
// set minor id to 0
133+
rawMessage.splice(3, 0, 0);
134+
}
135+
136+
const {
137+
1: conversation_message_id,
138+
2: flags,
139+
// 3: minor_id,
140+
4: peer_id,
141+
5: date,
142+
6: text,
143+
7: extra,
144+
8: attachments,
145+
9: random_id,
146+
10: id,
147+
11: update_time,
148+
} = rawMessage;
149+
128150
// eslint-disable-next-line @typescript-eslint/no-explicit-any
129151
const message = {
130152
id,

packages/vk-io/src/structures/contexts/message-flags.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ import { kSerializeData, UpdateSource } from '../../utils/constants';
88
export type MessageFlagsContextType = 'message_flags';
99

1010
export type MessageFlagsContextSubType =
11-
'message_flags_replace'
12-
| 'message_flags_add'
11+
'message_flags_add'
1312
| 'message_flags_delete';
1413

1514
const subTypes: Record<number, MessageFlagsContextSubType> = {
16-
1: 'message_flags_replace',
1715
2: 'message_flags_add',
1816
3: 'message_flags_delete',
1917
};
@@ -34,7 +32,8 @@ enum MessageFlag {
3432
DELETED_FOR_ALL = 1 << 17,
3533
INBOX_FROM_CHAT = 1 << 19,
3634
SILENT = 1 << 20,
37-
REPLIED = 1 << 21
35+
REPLIED = 1 << 21,
36+
AUTO_READ = 1 << 23
3837
}
3938
/* eslint-enable no-bitwise */
4039

@@ -191,6 +190,13 @@ export class MessageFlagsContext<S = ContextDefaultState>
191190
return this.hasFlag(MessageFlag.REPLIED);
192191
}
193192

193+
/**
194+
* Checks a reply has been created to the message
195+
*/
196+
public get isAutoRead(): boolean {
197+
return this.hasFlag(MessageFlag.AUTO_READ);
198+
}
199+
194200
/**
195201
* Returns the message ID
196202
*/

packages/vk-io/src/structures/contexts/message.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ export type MessageContextSubType =
4747
| MessageContextPayloadEventType;
4848

4949
const subTypesEnum: Record<string | number, MessageContextSubType> = {
50-
4: 'message_new',
51-
5: 'message_edit',
52-
18: 'message_edit',
50+
10004: 'message_new',
51+
10005: 'message_edit',
52+
10018: 'message_edit',
5353
};
5454

5555
const kForwards = Symbol('forwards');
@@ -821,6 +821,8 @@ class MessageContext<S = ContextDefaultState>
821821
}
822822
: payload;
823823

824+
console.log(payload);
825+
824826
const { message } = this;
825827

826828
this.text = message.text

packages/vk-io/src/structures/contexts/messages-read.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ export type MessagesReadContextSubType =
1010
| 'messages_read_outbox';
1111

1212
const subTypes: Record<number, MessagesReadContextSubType> = {
13-
6: 'messages_read_inbox',
14-
7: 'messages_read_outbox',
13+
10006: 'messages_read_inbox',
14+
10007: 'messages_read_outbox',
1515
};
1616

1717
export interface IMessagesReadContextPayload {

packages/vk-io/src/updates/transports/polling.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const debug = createDebug('vk-io:updates');
1414
/**
1515
* Version polling
1616
*/
17-
const POLLING_VERSION = 10;
17+
const POLLING_VERSION = 19;
1818

1919
export class PollingTransport {
2020
public started = false;
@@ -164,7 +164,12 @@ export class PollingTransport {
164164

165165
const interval = setTimeout(() => controller.abort(), 30e3);
166166

167-
let result;
167+
let result:
168+
| { ts: number, pts?: number, updates: unknown[] }
169+
| { failed: 1, ts: number }
170+
| { failed: 2, error: string }
171+
| { failed: 4, min_version: 0, max_version: 19 };
172+
168173
try {
169174
const response = await fetch(this.url, {
170175
agent: this.options.agent,
@@ -191,7 +196,7 @@ export class PollingTransport {
191196
clearTimeout(interval);
192197
}
193198

194-
if (result.failed !== undefined) {
199+
if ('failed' in result) {
195200
if (result.failed === 1) {
196201
this.ts = result.ts;
197202

packages/vk-io/src/updates/updates.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,27 +214,27 @@ const webhookContextsEvents: [string[], Constructor<any>][] = [
214214
// eslint-disable-next-line @typescript-eslint/no-explicit-any
215215
const pollingContextsEvents: [number[], Constructor<any>][] = [
216216
[
217-
[1, 2, 3],
217+
[10002, 10003],
218218
MessageFlagsContext,
219219
],
220220
[
221-
[4, 5, 18],
221+
[10004, 10005, 10018],
222222
MessageContext,
223223
],
224224
[
225-
[6, 7],
225+
[10006, 10007],
226226
MessagesReadContext,
227227
],
228228
[
229229
[8, 9, 81],
230230
FriendActivityContext,
231231
],
232232
[
233-
[10, 11, 12],
233+
[10, 12],
234234
DialogFlagsContext,
235235
],
236236
[
237-
[13, 14],
237+
[10013],
238238
DialogMessagesContext,
239239
],
240240
[

0 commit comments

Comments
 (0)