From 10a6a91e7447f69bc552544e68a97c22894235a6 Mon Sep 17 00:00:00 2001
From: John Smith <xfgryujk@126.com>
Date: Wed, 29 May 2019 22:28:10 +0800
Subject: [PATCH] =?UTF-8?q?2019-5-29=20B=E7=AB=99=E5=BC=B9=E5=B9=95?=
 =?UTF-8?q?=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.md  |  4 +++-
 blivedm.py | 22 +++++++---------------
 2 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/README.md b/README.md
index 81978c7..ba6d60e 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,6 @@
 
 获取bilibili直播弹幕,使用websocket协议
 
-[协议解释](https://blog.csdn.net/xfgryujk/article/details/80306776)
+[协议解释](https://blog.csdn.net/xfgryujk/article/details/80306776)(有点过时了,总体是没错的)
+
+基于本库开发的一个应用:[blivechat](https://github.com/xfgryujk/blivechat)
diff --git a/blivedm.py b/blivedm.py
index 928613c..ef91e76 100644
--- a/blivedm.py
+++ b/blivedm.py
@@ -59,22 +59,11 @@ class BLiveClient:
     }
     for cmd in (  # 其他已知命令
         # 从前端扒来的
-        '66FFFF', 'SYS_MSG', 'SYS_GIFT', 'GUARD_MSG', 'LIVE', 'PREPARING',
-        'END', 'CLOSE', 'BLOCK', 'ROUND', 'WELCOME', 'REFRESH',
-        'ACTIVITY_RED_PACKET', 'ROOM_LIMIT', 'PK_PRE', 'PK_END', 'PK_SETTLE',
-        'PK_MIC_END', 'live', 'preparing', 'end', 'close', 'block', 'pre-round',
-        'round', 'error', 'player-state-play', 'player-state-pause', 'http:',
-        'https:', 'ws:', 'wss:', 'videoVolume', 'homeVideoVolume', 'div',
-        'canvas', 'initialized', 'playerStateChange', 'liveStateChange',
-        'videoStateChange', 'fullscreenChange', 'playing', 'paused', 'switchLine',
-        'switchQuality', 'webFullscreen', 'feedBackClick', 'blockSettingClick',
-        'set', 'initDanmaku', 'addDanmaku', 'sendDanmaku', 'receiveOnlineCount',
-        'receiveMessage', 'userLogin', 'giftPackageClick', 'sendGift', 'guidChange',
-        'reload', 'danmaku', 'block', 'gift', 'firstLoadedAPIPlayer',
-        'firstLoadedAPIPlayurl', 'firstLoadStart', 'firstLoadedMetaData',
-        'firstPlaying', 'enterTheRoom', 'operableElementsChange',
+        '66FFFF', 'SYS_MSG', 'SYS_GIFT', 'GUARD_MSG', 'LIVE', 'PREPARING', 'END', 'CLOSE',
+        'BLOCK', 'ROUND', 'WELCOME', 'REFRESH', 'ACTIVITY_RED_PACKET', 'ROOM_LIMIT',
+        'PK_PRE', 'PK_END', 'PK_SETTLE', 'PK_MIC_END',
         # 其他遇到的
-        'COMBO_SEND', 'COMBO_END', 'ROOM_RANK', 'NOTICE_MSG', 'WELCOME_GUARD',
+        'COMBO_SEND', 'COMBO_END', 'ROOM_RANK', 'NOTICE_MSG', 'WELCOME_GUARD', 'GUARD_BUY',
         'WISH_BOTTLE', 'RAFFLE_START', 'ENTRY_EFFECT', 'ROOM_REAL_TIME_MESSAGE_UPDATE'
     ):
         _COMMAND_HANDLERS[cmd] = None
@@ -252,6 +241,9 @@ class BLiveClient:
             return
 
         cmd = command['cmd']
+        pos = cmd.find(':')  # 2019-5-29 B站弹幕升级新增了参数
+        if pos != -1:
+            cmd = cmd[:pos]
         if cmd in self._COMMAND_HANDLERS:
             handler = self._COMMAND_HANDLERS[cmd]
             if handler is not None: