瀏覽代碼

Prints version from presence if available.

master
damencho 5 年之前
父節點
當前提交
1c3b3c18e1
共有 1 個檔案被更改,包括 24 行新增0 行删除
  1. 24
    0
      modules/xmpp/ChatRoom.js

+ 24
- 0
modules/xmpp/ChatRoom.js 查看文件

@@ -345,6 +345,7 @@ export default class ChatRoom extends Listenable {
345 345
             member.status = statusEl.textContent || '';
346 346
         }
347 347
         let hasStatusUpdate = false;
348
+        let hasVersionUpdate = false;
348 349
         const xElement
349 350
             = pres.getElementsByTagNameNS(
350 351
                 'http://jabber.org/protocol/muc#user', 'x')[0];
@@ -435,6 +436,19 @@ export default class ChatRoom extends Listenable {
435 436
             case 'identity':
436 437
                 member.identity = extractIdentityInformation(node);
437 438
                 break;
439
+            case 'stat': {
440
+                const { attributes } = node;
441
+
442
+                if (!attributes) {
443
+                    break;
444
+                }
445
+                const { name } = attributes;
446
+
447
+                if (name === 'version') {
448
+                    member.version = attributes.value;
449
+                }
450
+                break;
451
+            }
438 452
             }
439 453
         }
440 454
 
@@ -471,6 +485,7 @@ export default class ChatRoom extends Listenable {
471 485
             this.members[from] = member;
472 486
             logger.log('entered', from, member);
473 487
             hasStatusUpdate = member.status !== undefined;
488
+            hasVersionUpdate = member.version !== undefined;
474 489
             if (member.isFocus) {
475 490
                 this._initFocus(from, jid);
476 491
             } else {
@@ -537,6 +552,11 @@ export default class ChatRoom extends Listenable {
537 552
                 hasStatusUpdate = true;
538 553
                 memberOfThis.status = member.status;
539 554
             }
555
+
556
+            if (memberOfThis.version !== member.version) {
557
+                hasVersionUpdate = true;
558
+                memberOfThis.version = member.version;
559
+            }
540 560
         }
541 561
 
542 562
         // after we had fired member or room joined events, lets fire events
@@ -623,6 +643,10 @@ export default class ChatRoom extends Listenable {
623 643
                 from,
624 644
                 member.status);
625 645
         }
646
+
647
+        if (hasVersionUpdate) {
648
+            logger.info(`Received version for ${jid}: ${member.version}`);
649
+        }
626 650
     }
627 651
 
628 652
     /**

Loading…
取消
儲存