buzzk 1.7.2 β†’ 1.8.0

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.
Files changed (3) hide show
  1. package/README.md +4 -0
  2. package/lib/chat.js +85 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -17,6 +17,10 @@
17
17
 
18
18
  ## πŸ“– μ—…λ°μ΄νŠΈ λ‚΄μ—­
19
19
 
20
+ - 본인 인증 μ±„νŒ… 지원 μΆ”κ°€
21
+
22
+ >
23
+
20
24
  - μ±„νŒ… 데이터에 hasMod ν•­λͺ© μΆ”κ°€
21
25
 
22
26
  >
package/lib/chat.js CHANGED
@@ -12,6 +12,7 @@ class chzzkChat {
12
12
  #ws; //Chat Web Socket
13
13
  #ssID; //kr-ss?.chat.naver.com/chat
14
14
  #accTkn; //Account Access Token
15
+ #extTkn //for RealName Auth
15
16
  #svcid; //game
16
17
  #uid;
17
18
  #sid;
@@ -43,7 +44,9 @@ class chzzkChat {
43
44
  //Get accTkn
44
45
  let accRes = await reqGame("nng_main/v1/chats/access-token?channelId=" + this.#chatID + "&chatType=STREAMING");
45
46
  if (accRes.code != 200) return resolve(null);
47
+ console.log(accRes);
46
48
  this.#accTkn = accRes.content.accessToken;
49
+ this.#extTkn = accRes.content.extraToken;
47
50
  //Get accTkn
48
51
 
49
52
  //Load Balancing
@@ -138,7 +141,8 @@ class chzzkChat {
138
141
  "chatType":"STREAMING",
139
142
  "osType":"PC",
140
143
  "streamingChannelId": this.channelID,
141
- "emojis":""
144
+ "emojis":"",
145
+ "extraToken": this.#extTkn
142
146
  }
143
147
 
144
148
  //WS Send
@@ -193,7 +197,10 @@ class chzzkChat {
193
197
  onMessage(callback) {
194
198
  if (!this.#ws) return callback(null);
195
199
 
196
- this.#callbacks[Object.keys(this.#callbacks).length] = callback;
200
+ this.#callbacks[Object.keys(this.#callbacks).length] = {
201
+ type: "message",
202
+ callback: callback
203
+ };
197
204
  this.#onMessageHandler(callback);
198
205
  }
199
206
 
@@ -259,6 +266,80 @@ class chzzkChat {
259
266
  });
260
267
  }
261
268
 
269
+ onDonation(callback) {
270
+ if (!this.#ws) return callback(null);
271
+
272
+ this.#callbacks[Object.keys(this.#callbacks).length] = {
273
+ type: "donation",
274
+ callback: callback
275
+ };
276
+ this.#onDonationHandler(callback);
277
+ }
278
+
279
+ #onDonationHandler (callback) {
280
+ if (!this.#ws) return callback(null);
281
+
282
+ this.#ws.on("message", async (data) => {
283
+ try {
284
+ data = await JSON.parse(data);
285
+ }
286
+
287
+ catch (error) {
288
+ return;
289
+ }
290
+
291
+ if (data.cmd == 93102) {
292
+
293
+ data = data.bdy;
294
+ let msgList = new Map();
295
+
296
+ for (let o in data) {
297
+ if (data[o].profile) {
298
+ try {
299
+ data[o].profile = await JSON.parse(data[o].profile);
300
+ data[o].extras = await JSON.parse(data[o].extras);
301
+ }
302
+
303
+ catch (error) {
304
+ return;
305
+ }
306
+ }
307
+ else {
308
+ data[o].profile = {
309
+ nickname: null,
310
+ profileImageUrl: null,
311
+ userRoleCode: null
312
+ };
313
+ }
314
+
315
+ try {
316
+ let modVal = false;
317
+ if (data[o].profile.userRoleCode === "streamer" || data[o].profile.userRoleCode === "streaming_channel_manager" || data[o].profile.userRoleCode === "streaming_chat_manager") modVal = true;
318
+
319
+ msgList[Object.keys(msgList).length] = {
320
+ amount: data[o].extras.payAmount,
321
+ author: {
322
+ id: data[o].uid,
323
+ name: data[o].profile.nickname,
324
+ imageURL: data[o].profile.profileImageUrl,
325
+ hasMod: modVal
326
+ },
327
+ message: data[o].msg,
328
+ time: data[o].msgTime
329
+ };
330
+ }
331
+
332
+ catch(error) {
333
+ return;
334
+ }
335
+ }
336
+
337
+ callback(msgList);
338
+
339
+ }
340
+ });
341
+ }
342
+
262
343
  /**
263
344
  * @param {function} callback
264
345
  */
@@ -406,7 +487,8 @@ class chzzkChat {
406
487
  await this.disconnect();
407
488
  await this.connect();
408
489
  for (let o in this.#callbacks) {
409
- this.#onMessageHandler(this.#callbacks[o]);
490
+ if (this.#callbacks[o].type === "message") this.#onMessageHandler(this.#callbacks[o].callback);
491
+ else if (this.#callbacks[o].type === "donation") this.#onDonationHandler(this.#callbacks[o].callback);
410
492
  }
411
493
  return;
412
494
  //Reconnect
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "buzzk",
3
3
  "displayName": "BUZZK",
4
- "version": "1.7.2",
4
+ "version": "1.8.0",
5
5
  "description": "λΏŒμ§€μ§ (BUZZK) - μΉ˜μ§€μ§(CHZZK) 챗봇을 λ”μš± μ‰½κ²Œ κ°œλ°œν•  수 μžˆλ„λ‘ λ•λŠ” 비곡식 라이브러리.",
6
6
  "main": "lib/index.js",
7
7
  "type": "commonjs",