diff --git a/blivedm b/blivedm index 1613238..fb9b687 160000 --- a/blivedm +++ b/blivedm @@ -1 +1 @@ -Subproject commit 161323842071f1bc9edaef044f78644e39464c3a +Subproject commit fb9b687e586ad47776f302bf363ccbcc23a571b1 diff --git a/frontend/src/views/Room.vue b/frontend/src/views/Room.vue index 0f8a250..9e7fad2 100644 --- a/frontend/src/views/Room.vue +++ b/frontend/src/views/Room.vue @@ -83,12 +83,13 @@ export default { let {cmd, data} = JSON.parse(event.data) let message = null let time = data.timestamp ? new Date(data.timestamp * 1000) : new Date() - switch(cmd) { + switch (cmd) { case COMMAND_ADD_TEXT: if (!this.config.showDanmaku || !this.filterTextMessage(data) || this.mergeSimilar(data.content)) { break } message = { + id: `text_${this.nextId++}`, type: constants.MESSAGE_TYPE_TEXT, avatarUrl: data.avatarUrl, time: time, @@ -108,6 +109,7 @@ export default { break } message = { + id: `gift_${this.nextId++}`, type: constants.MESSAGE_TYPE_SUPER_CHAT, avatarUrl: data.avatarUrl, authorName: data.authorName, @@ -122,6 +124,7 @@ export default { break } message = { + id: `member_${this.nextId++}`, type: constants.MESSAGE_TYPE_MEMBER, avatarUrl: data.avatarUrl, time: time, @@ -138,6 +141,7 @@ export default { break } message = { + id: `sc_${data.id}`, type: constants.MESSAGE_TYPE_SUPER_CHAT, avatarUrl: data.avatarUrl, authorName: data.authorName, @@ -146,10 +150,21 @@ export default { content: data.content } break - case COMMAND_DEL_SUPER_CHAT: - // TODO 删除SC + case COMMAND_DEL_SUPER_CHAT: { + let arrays = [this.messages, this.messagesBuffer, this.paidMessages] + for (let id of data.ids) { + id = `sc_${id}` + for (let arr of arrays) { + for (let i = 0; i < arr.length; i++) { + if (arr[i].id === id) { + arr.splice(i, 1) + } + } + } + } break } + } if (message) { this.addMessageBuffer(message) } @@ -208,7 +223,7 @@ export default { return false }, addMessageBuffer(message) { - if (this.config.maxSpeed > 0 && message.type === 0) { + if (this.config.maxSpeed > 0 && message.type === constants.MESSAGE_TYPE_TEXT) { message.addTime = new Date() this.messagesBuffer.push(message) } else { @@ -217,7 +232,6 @@ export default { } }, addMessageShow(message) { - message.id = this.nextId++ message.addTime = new Date() this.messages.push(message) if (message.type !== constants.MESSAGE_TYPE_TEXT) { diff --git a/views/chat.py b/views/chat.py index e258301..7c14b7d 100644 --- a/views/chat.py +++ b/views/chat.py @@ -208,8 +208,8 @@ class RoomManager: @staticmethod def __send_test_message(room): base_data = { - 'avatarUrl': 'https://i0.hdslb.com/bfs/face/29b6be8aa611e70a3d3ac219cdaf5e72b604f2de.jpg@48w_48h', - 'timestamp': time.time(), + 'avatarUrl': 'https://i0.hdslb.com/bfs/face/29b6be8aa611e70a3d3ac219cdaf5e72b604f2de.jpg@48w_48h', + 'timestamp': time.time(), 'authorName': 'xfgryujk', } text_data = { @@ -222,25 +222,31 @@ class RoomManager: 'isNewbie': False, 'isMobileVerified': True } - vip_data = base_data + member_data = base_data gift_data = { **base_data, - 'giftName': '礼花', + 'giftName': '摩天大楼', 'giftNum': 1, - 'totalCoin': 28000 + 'totalCoin': 450000 + } + sc_data = { + **base_data, + 'price': 30, + 'content': 'The quick brown fox jumps over the lazy dog', + 'id': 1 } room.send_message(Command.ADD_TEXT, text_data) text_data['authorName'] = '主播' text_data['authorType'] = 3 text_data['content'] = "I can eat glass, it doesn't hurt me." room.send_message(Command.ADD_TEXT, text_data) - room.send_message(Command.ADD_MEMBER, vip_data) - room.send_message(Command.ADD_GIFT, gift_data) - gift_data['giftName'] = '节奏风暴' - gift_data['totalCoin'] = 100000 - room.send_message(Command.ADD_GIFT, gift_data) - gift_data['giftName'] = '摩天大楼' - gift_data['totalCoin'] = 450000 + room.send_message(Command.ADD_MEMBER, member_data) + room.send_message(Command.ADD_SUPER_CHAT, sc_data) + sc_data['price'] = 100 + sc_data['content'] = '敏捷的棕色狐狸跳过了懒狗' + sc_data['id'] = 2 + room.send_message(Command.ADD_SUPER_CHAT, sc_data) + # room.send_message(Command.DEL_SUPER_CHAT, {'ids': [1, 2]}) room.send_message(Command.ADD_GIFT, gift_data) gift_data['giftName'] = '小电视飞船' gift_data['totalCoin'] = 1245000