mirror of
https://github.com/xfgryujk/blivechat.git
synced 2024-12-26 12:50:33 +08:00
开放平台接口修正礼物价格,web接口支持显示头像、修正上舰消息的单位
This commit is contained in:
parent
7f77fdd889
commit
3273fb4d34
2
blivedm
2
blivedm
@ -1 +1 @@
|
|||||||
Subproject commit f9b6dc2f353f574dc7ae757be63ccacf6c93d06f
|
Subproject commit 68eae6b6aa1ddde660d317fbccf82cd7edbecd98
|
@ -261,7 +261,7 @@ export default class ChatClientDirectOpenLive extends ChatClientOfficialBase {
|
|||||||
|
|
||||||
sendGiftCallback(command) {
|
sendGiftCallback(command) {
|
||||||
let data = command.data
|
let data = command.data
|
||||||
let totalCoin = data.price * data.gift_num
|
let totalCoin = data.r_price * data.gift_num
|
||||||
data = new chatModels.AddGiftMsg({
|
data = new chatModels.AddGiftMsg({
|
||||||
id: data.msg_id,
|
id: data.msg_id,
|
||||||
avatarUrl: chat.processAvatarUrl(data.uface),
|
avatarUrl: chat.processAvatarUrl(data.uface),
|
||||||
|
@ -70,6 +70,12 @@ export default class ChatClientDirectWeb extends ChatClientOfficialBase {
|
|||||||
async danmuMsgCallback(command) {
|
async danmuMsgCallback(command) {
|
||||||
let info = command.info
|
let info = command.info
|
||||||
|
|
||||||
|
let modeInfo = info[0][15]
|
||||||
|
let avatarUrl = modeInfo?.user?.base?.face ?? ''
|
||||||
|
if (!avatarUrl) {
|
||||||
|
avatarUrl = await chat.getAvatarUrl(uid, authorName)
|
||||||
|
}
|
||||||
|
|
||||||
let roomId, medalLevel
|
let roomId, medalLevel
|
||||||
if (info[3]) {
|
if (info[3]) {
|
||||||
roomId = info[3][3]
|
roomId = info[3][3]
|
||||||
@ -95,7 +101,7 @@ export default class ChatClientDirectWeb extends ChatClientOfficialBase {
|
|||||||
let authorName = info[2][1]
|
let authorName = info[2][1]
|
||||||
let content = info[1]
|
let content = info[1]
|
||||||
let data = new chatModels.AddTextMsg({
|
let data = new chatModels.AddTextMsg({
|
||||||
avatarUrl: await chat.getAvatarUrl(uid, authorName),
|
avatarUrl: avatarUrl,
|
||||||
timestamp: info[0][4] / 1000,
|
timestamp: info[0][4] / 1000,
|
||||||
authorName: authorName,
|
authorName: authorName,
|
||||||
authorType: authorType,
|
authorType: authorType,
|
||||||
@ -126,13 +132,25 @@ export default class ChatClientDirectWeb extends ChatClientOfficialBase {
|
|||||||
this.msgHandler.onAddGift(data)
|
this.msgHandler.onAddGift(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
async guardBuyCallback(command) {
|
async userToastV2Callback(command) {
|
||||||
let data = command.data
|
let data = command.data
|
||||||
|
let {
|
||||||
|
sender_uinfo: {
|
||||||
|
uid,
|
||||||
|
base: {
|
||||||
|
name: username,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
guard_info: {
|
||||||
|
start_time: timestamp,
|
||||||
|
guard_level: guardLevel,
|
||||||
|
},
|
||||||
|
} = data
|
||||||
data = new chatModels.AddMemberMsg({
|
data = new chatModels.AddMemberMsg({
|
||||||
avatarUrl: await chat.getAvatarUrl(data.uid, data.username),
|
avatarUrl: await chat.getAvatarUrl(uid, username),
|
||||||
timestamp: data.start_time,
|
timestamp: timestamp,
|
||||||
authorName: data.username,
|
authorName: username,
|
||||||
privilegeType: data.guard_level
|
privilegeType: guardLevel,
|
||||||
})
|
})
|
||||||
this.msgHandler.onAddMember(data)
|
this.msgHandler.onAddMember(data)
|
||||||
}
|
}
|
||||||
@ -163,7 +181,7 @@ export default class ChatClientDirectWeb extends ChatClientOfficialBase {
|
|||||||
const CMD_CALLBACK_MAP = {
|
const CMD_CALLBACK_MAP = {
|
||||||
DANMU_MSG: ChatClientDirectWeb.prototype.danmuMsgCallback,
|
DANMU_MSG: ChatClientDirectWeb.prototype.danmuMsgCallback,
|
||||||
SEND_GIFT: ChatClientDirectWeb.prototype.sendGiftCallback,
|
SEND_GIFT: ChatClientDirectWeb.prototype.sendGiftCallback,
|
||||||
GUARD_BUY: ChatClientDirectWeb.prototype.guardBuyCallback,
|
USER_TOAST_MSG_V2: ChatClientDirectWeb.prototype.userToastV2Callback,
|
||||||
SUPER_CHAT_MESSAGE: ChatClientDirectWeb.prototype.superChatMessageCallback,
|
SUPER_CHAT_MESSAGE: ChatClientDirectWeb.prototype.superChatMessageCallback,
|
||||||
SUPER_CHAT_MESSAGE_DELETE: ChatClientDirectWeb.prototype.superChatMessageDeleteCallback
|
SUPER_CHAT_MESSAGE_DELETE: ChatClientDirectWeb.prototype.superChatMessageDeleteCallback
|
||||||
}
|
}
|
||||||
|
@ -508,7 +508,9 @@ class LiveMsgHandler(blivedm.BaseHandler):
|
|||||||
|
|
||||||
async def __on_danmaku(self, client: WebLiveClient, message: dm_web_models.DanmakuMessage):
|
async def __on_danmaku(self, client: WebLiveClient, message: dm_web_models.DanmakuMessage):
|
||||||
# 先异步调用再获取房间,因为返回时房间可能已经不存在了
|
# 先异步调用再获取房间,因为返回时房间可能已经不存在了
|
||||||
avatar_url = await services.avatar.get_avatar_url(message.uid, message.uname)
|
avatar_url = message.face
|
||||||
|
if avatar_url == '':
|
||||||
|
avatar_url = await services.avatar.get_avatar_url(message.uid, message.uname)
|
||||||
|
|
||||||
room = client_room_manager.get_room(client.room_key)
|
room = client_room_manager.get_room(client.room_key)
|
||||||
if room is None:
|
if room is None:
|
||||||
@ -605,11 +607,11 @@ class LiveMsgHandler(blivedm.BaseHandler):
|
|||||||
sdk_models.Command.ADD_GIFT, data, make_plugin_msg_extra_from_live_client(client)
|
sdk_models.Command.ADD_GIFT, data, make_plugin_msg_extra_from_live_client(client)
|
||||||
)
|
)
|
||||||
|
|
||||||
def _on_buy_guard(self, client: WebLiveClient, message: dm_web_models.GuardBuyMessage):
|
def _on_user_toast_v2(self, client: WebLiveClient, message: dm_web_models.UserToastV2Message):
|
||||||
utils.async_io.create_task_with_ref(self.__on_buy_guard(client, message))
|
utils.async_io.create_task_with_ref(self.__on_buy_guard(client, message))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def __on_buy_guard(client: WebLiveClient, message: dm_web_models.GuardBuyMessage):
|
async def __on_buy_guard(client: WebLiveClient, message: dm_web_models.UserToastV2Message):
|
||||||
# 先异步调用再获取房间,因为返回时房间可能已经不存在了
|
# 先异步调用再获取房间,因为返回时房间可能已经不存在了
|
||||||
avatar_url = await services.avatar.get_avatar_url(message.uid, message.username)
|
avatar_url = await services.avatar.get_avatar_url(message.uid, message.username)
|
||||||
|
|
||||||
@ -625,7 +627,7 @@ class LiveMsgHandler(blivedm.BaseHandler):
|
|||||||
'privilegeType': message.guard_level,
|
'privilegeType': message.guard_level,
|
||||||
# 给插件用的字段
|
# 给插件用的字段
|
||||||
'num': message.num,
|
'num': message.num,
|
||||||
'unit': '月', # 单位在USER_TOAST_MSG消息里,不想改消息。现在没有别的单位,web接口也很少有人用了,先写死吧
|
'unit': message.unit,
|
||||||
'total_coin': message.price * message.num,
|
'total_coin': message.price * message.num,
|
||||||
'uid': str(message.uid) if message.uid != 0 else message.username,
|
'uid': str(message.uid) if message.uid != 0 else message.username,
|
||||||
'medalLevel': 0,
|
'medalLevel': 0,
|
||||||
@ -791,7 +793,7 @@ class LiveMsgHandler(blivedm.BaseHandler):
|
|||||||
if room is None:
|
if room is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
total_coin = message.price * message.gift_num
|
total_coin = message.r_price * message.gift_num
|
||||||
data = {
|
data = {
|
||||||
'id': message.msg_id,
|
'id': message.msg_id,
|
||||||
'avatarUrl': services.avatar.process_avatar_url(message.uface),
|
'avatarUrl': services.avatar.process_avatar_url(message.uface),
|
||||||
|
Loading…
Reference in New Issue
Block a user