Skip to content

接入SendGiftV2 - #39

Open
mengnitj wants to merge 3 commits into
Starlwr:pythonfrom
mengnitj:python
Open

接入SendGiftV2#39
mengnitj wants to merge 3 commits into
Starlwr:pythonfrom
mengnitj:python

Conversation

@mengnitj

@mengnitj mengnitj commented Sep 7, 2026

Copy link
Copy Markdown

接入SendGiftV2,需安装依赖protobuf

@mengnitj

mengnitj commented Sep 7, 2026

Copy link
Copy Markdown
Author

测试用例


from starbot.utils.gift_pb2 import SendGiftV2
import  base64
# 普通礼物
event1 = {'room_display_id': 1771455884, 'room_real_id': 1771455884, 'type': 'SEND_GIFT_V2', 'data': {'cmd': 'SEND_GIFT_V2', 'danmu': {'area': 0}, 'data': {'dmscore': 1428, 'pb': 'CI7zn8MBEg/liJvkuJblvZLmupDlvZUaSmh0dHBzOi8vaTIuaGRzbGIuY29tL2Jmcy9mYWNlL2FlZDBmMmVhMTZmNDk2NTdiOWQ4MGNhYTg3ZjE1MTE0ZGQyNmZkYTkuanBnIgcjMDBEMUYxKANCAFKFBQjEiQISCeS6uuawlOelqBhkIAEoZDBkOJBOQgRnb2xkShM0ODEzMzA4NjI4OTEwMTIwOTYwUKuA69QGWAFiRGJhdGNoOmdpZnQ6Y29tYm9faWQ6NDA5NDY3Mjc4OjM1NDY3OTQ4MzExMjEzNTI6MzM5ODg6MTc4ODUyNjYzNS4xMzM0aApwkE54BYUBAACAP4gBAZIBBuaKleWWgsAB6+6JBeoBGAoN5qCX6IqdTW9tb2NoaRDIl4CwqLmmBooC0QEIyJeAsKi5pgYSxQEKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnMlsKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnOgsg////////////AZICAhACmgLlAQpKaHR0cHM6Ly9zMS5oZHNsYi5jb20vYmZzL2xpdmUvN2Q3ODY0NmVlNGVjYzkwMGNlYmJlNDZjYjk2M2Y0MjEwNzk1NDhmMC5wbmcSS2h0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9saXZlLzRkNTIxNWRhNDdkMjViM2RiNzg3ZDJiYTU0NDkwMTZlZTE0MmRjODAud2VicCpKaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2xpdmUvNzBkOTJhZjBhODM3YWU2NmUyNWYyMzQ5M2E1NmUxNjkwZjc2ZWJiYS5naWaqAgIIAlgBagIIOHqKAwiO85/DARLJAQoP5Yib5LiW5b2S5rqQ5b2VEkpodHRwczovL2kyLmhkc2xiLmNvbS9iZnMvZmFjZS9hZWQwZjJlYTE2ZjQ5NjU3YjlkODBjYWE4N2YxNTExNGRkMjZmZGE5LmpwZzJdCg/liJvkuJblvZLmupDlvZUSSmh0dHBzOi8vaTIuaGRzbGIuY29tL2Jmcy9mYWNlL2FlZDBmMmVhMTZmNDk2NTdiOWQ4MGNhYTg3ZjE1MTE0ZGQyNmZkYTkuanBnOgsg////////////ARq1AQoJ6bq76byg5YyFECgYi8L9ByCEof8HKP/RnwMwi8L9B0gBUMiXgLCouaYGWANg6NgSakpodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvbGl2ZS80ODM2MGM4ZjNiN2RlODAzMWU4NmZmMWVmNGEyZGZjMGVjMmE2MWMyLnBuZ3oJIzRDN0RGRjk5ggEJIzRDN0RGRjk5igEHIzU4QTFGOJIBByNGRkZGRkaaAQkjNEM3REZGRTY='}}}
# 单抽盲盒
event2 = {'room_display_id': 1771455884, 'room_real_id': 1771455884, 'type': 'SEND_GIFT_V2', 'data': {'cmd': 'SEND_GIFT_V2', 'danmu': {'area': 0}, 'data': {'dmscore': 952, 'pb': 'COCZ/AMSFeWRteWRteiiq+S9oOeMnOWIsOS6hhpKaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2ZhY2UvZTg3MGJiZjU4ODFiZTM1YTUyY2IzMmFjOTRjN2NiNzZkOWNiOThlZC5qcGciByMwMEQxRjEoA0IASiAIiwEQ+/sBGgzlv4Pliqjnm7Lnm5IqBueIhuWHujCYdVLnBAj++gESCeajieiKseezlhgBIAIoqEYwqEY4mHVCBGdvbGRKEzQ4MTMzMDc1Njc3Mzg2Mjk2MzJQrv7q1AZYAWIkMzIyZjBhN2YtMjJlYy00YWNhLTg2ZTQtMTFkZGE4NDUxNjgxaApwqEZ4BYUBAACAP4gBAZIBBuaKleWWgsAB+e2JBeoBGAoN5qCX6IqdTW9tb2NoaRDIl4CwqLmmBooC0QEIyJeAsKi5pgYSxQEKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnMlsKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnOgsg////////////AZICAJoC5QEKSmh0dHBzOi8vczEuaGRzbGIuY29tL2Jmcy9saXZlL2I1NTU2ODJhZjQxNTUxYzI4ZjhhZDE5ZGM1YzRlZDg3OTQzYzg0ZjQucG5nEktodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvbGl2ZS8zZGZiNzUzMDY1Yzk2NzY1M2RjMzViZTFkZjg1MzIyMTg4YTg4NjI1LndlYnAqSmh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9saXZlLzk3NjUyYTcyNGM2MTBiM2U3ZGYyZjQ5YTRmYzgyNzY5YTRiMGMwNjIuZ2lmoAKoRqoCAFgBagIIKHqVAwjgmfwDEtUBChXlkbXlkbXooqvkvaDnjJzliLDkuoYSSmh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9mYWNlL2U4NzBiYmY1ODgxYmUzNWE1MmNiMzJhYzk0YzdjYjc2ZDljYjk4ZWQuanBnMmMKFeWRteWRteiiq+S9oOeMnOWIsOS6hhJKaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2ZhY2UvZTg3MGJiZjU4ODFiZTM1YTUyY2IzMmFjOTRjN2NiNzZkOWNiOThlZC5qcGc6CyD///////////8BGrUBCgnpurvpvKDljIUQIBjVkLQBIP+39gQo/9GfAzDVkLQBSAFQyJeAsKi5pgZYA2DX0QJqSmh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9saXZlLzQ4MzYwYzhmM2I3ZGU4MDMxZTg2ZmYxZWY0YTJkZmMwZWMyYTYxYzIucG5negkjNEM3REZGOTmCAQkjNEM3REZGOTmKAQcjNThBMUY4kgEHI0ZGRkZGRpoBCSM0QzdERkZFNg=='}}}
# 10连盲盒
event3 = {'room_display_id': 1771455884, 'room_real_id': 1771455884, 'type': 'SEND_GIFT_V2', 'data': {'cmd': 'SEND_GIFT_V2', 'danmu': {'area': 0}, 'data': {'dmscore': 1190, 'pb': 'CJ6V144BEgzno4rno4rlmI7lmI4aSmh0dHBzOi8vaTIuaGRzbGIuY29tL2Jmcy9mYWNlLzE5MDY0OTEzMDcwZTQyZTc5M2M3YjNmMTk5ZWM0MTdiYzlmMDMzYTYuanBnIgcjMDBEMUYxKANCAEogCIsBEPv7ARoM5b+D5Yqo55uy55uSKgbniIblh7owmHVS8AQIgPsBEgzniLHlv4PmirHmnpUYBiACKIB9MIB9OJC/BUIEZ29sZEoTNDgxMzMxMjMwOTg5MDA1MzYzM1CYh+vUBlgBYiQ2OGI2ZDZiNS1kZjc3LTRiNjMtOTQxZC1mYjI1YzI3ZGJiN2FoCnCA7gV4CIUBAACAP4gBAZIBBuaKleWWgsABzveJBeoBGAoN5qCX6IqdTW9tb2NoaRDIl4CwqLmmBooC0QEIyJeAsKi5pgYSxQEKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnMlsKDeagl+iKnU1vbW9jaGkSSmh0dHBzOi8vaTEuaGRzbGIuY29tL2Jmcy9mYWNlLzFhZTJkOTU4NmJhMzgxZGJhMTc0YzViMDQxYmUyMGEwYzIxNzI5M2IuanBnOgsg////////////AZICAhACmgLlAQpKaHR0cHM6Ly9zMS5oZHNsYi5jb20vYmZzL2xpdmUvODI0NzE0YzgzMDk2NmQ3YmVjMzgxZTM1ZWY4MDhiMWY0NzhlMjFlZS5wbmcSS2h0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9saXZlLzMyYzhlZTQyNTY2NTAxODIyZDhlY2M2OGIzM2NkMmM2NDkzNzI2NmEud2VicCpKaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2xpdmUvYWU4MGQ4MGVhNzU4ZmYwOGZiNGUyYzQyMjZhYjdiNTAxMWI3MjhhNi5naWagAoB9qgICCAJS7AQI/foBEgnnlLXlvbHnpagYAiACKNAPMNAPOLDqAUIEZ29sZEoTNDgxMzMxMjMwOTg5MDA1MzYzNFCYh+vUBlgBYiQyOTUzZTU2Ni0zMDQ2LTQwODItODU2MC00Y2Q0YmYzMDg4ZTZoCnCgH3gFhQEAAIA/iAEBkgEG5oqV5ZaCwAG28IkF6gEYCg3moJfoip1Nb21vY2hpEMiXgLCouaYGigLRAQjIl4CwqLmmBhLFAQoN5qCX6IqdTW9tb2NoaRJKaHR0cHM6Ly9pMS5oZHNsYi5jb20vYmZzL2ZhY2UvMWFlMmQ5NTg2YmEzODFkYmExNzRjNWIwNDFiZTIwYTBjMjE3MjkzYi5qcGcyWwoN5qCX6IqdTW9tb2NoaRJKaHR0cHM6Ly9pMS5oZHNsYi5jb20vYmZzL2ZhY2UvMWFlMmQ5NTg2YmEzODFkYmExNzRjNWIwNDFiZTIwYTBjMjE3MjkzYi5qcGc6CyD///////////8BkgICEAKaAuUBCkpodHRwczovL3MxLmhkc2xiLmNvbS9iZnMvbGl2ZS8yMDg2NGExMGJlYWVhNTQxYzdkY2UyNjRkNWJiYzU2Njc2ZDYzZTRmLnBuZxJLaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2xpdmUvMDg3OTk0MzIzNDMwMzE0MWMzYTBjYTY4MGRmMjM5YTI3OGFjMWUzNy53ZWJwKkpodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvbGl2ZS9lZjliNjMwOTMxMDgwYTI3ZDQ3YzM5YWVlMDM3NDRmMmY2YTZkZjE5LmdpZqAC0A+qAgIIAlLtBAj++gESCeajieiKseezlhgCIAIoqEYwqEY4sOoBQgRnb2xkShM0ODEzMzEyMzA5ODkwMDUzNjMyUJiH69QGWAFiJGE3MTc3M2IxLTg3YjMtNDhlYi04ZGYyLTFjMzkxMDYzOTRkM2gKcNCMAXgFhQEAAIA/iAEBkgEG5oqV5ZaCwAHC8YkF6gEYCg3moJfoip1Nb21vY2hpEMiXgLCouaYGigLRAQjIl4CwqLmmBhLFAQoN5qCX6IqdTW9tb2NoaRJKaHR0cHM6Ly9pMS5oZHNsYi5jb20vYmZzL2ZhY2UvMWFlMmQ5NTg2YmEzODFkYmExNzRjNWIwNDFiZTIwYTBjMjE3MjkzYi5qcGcyWwoN5qCX6IqdTW9tb2NoaRJKaHR0cHM6Ly9pMS5oZHNsYi5jb20vYmZzL2ZhY2UvMWFlMmQ5NTg2YmEzODFkYmExNzRjNWIwNDFiZTIwYTBjMjE3MjkzYi5qcGc6CyD///////////8BkgICEAKaAuUBCkpodHRwczovL3MxLmhkc2xiLmNvbS9iZnMvbGl2ZS9iNTU1NjgyYWY0MTU1MWMyOGY4YWQxOWRjNWM0ZWQ4Nzk0M2M4NGY0LnBuZxJLaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2xpdmUvM2RmYjc1MzA2NWM5Njc2NTNkYzM1YmUxZGY4NTMyMjE4OGE4ODYyNS53ZWJwKkpodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvbGl2ZS85NzY1MmE3MjRjNjEwYjNlN2RmMmY0OWE0ZmM4Mjc2OWE0YjBjMDYyLmdpZqACqEaqAgIIAlgBagIIKnqEAwieldeOARLDAQoM56OK56OK5ZiO5ZiOEkpodHRwczovL2kyLmhkc2xiLmNvbS9iZnMvZmFjZS8xOTA2NDkxMzA3MGU0MmU3OTNjN2IzZjE5OWVjNDE3YmM5ZjAzM2E2LmpwZzJaCgzno4rno4rlmI7lmI4SSmh0dHBzOi8vaTIuaGRzbGIuY29tL2Jmcy9mYWNlLzE5MDY0OTEzMDcwZTQyZTc5M2M3YjNmMTk5ZWM0MTdiYzlmMDMzYTYuanBnOgsg////////////ARq1AQoJ6bq76byg5YyFECkYi8L9ByCEof8HKP/RnwMwi8L9B0gBUMiXgLCouaYGWANg9qodakpodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvbGl2ZS80ODM2MGM4ZjNiN2RlODAzMWU4NmZmMWVmNGEyZGZjMGVjMmE2MWMyLnBuZ3oJI0E3NzNGMTk5ggEJI0E3NzNGMTk5igEHI0Q0N0FGRpIBByNGRkZGRkaaAQkjQTc3M0YxRTY='}}}

for event in [event1, event2, event3]:
    pb = event.get('data', {}).get('data', {}).get("pb", "")
    v = SendGiftV2()
    v.ParseFromString(base64.b64decode(pb))
    for gift in v.gifts:
        base = {
            "giftId": gift.gift_id,
            "giftName": gift.gift_name,
            "uid": v.sender.uid,
            "num": gift.num,
            "total_coin": gift.total_coin,
            "discount_price": gift.discount_price,
            'blind_gift': None
        }
        if v.HasField("blind"):
            base['blind_gift'] = {
                "original_gift_id": v.blind.original_gift_id,
                "original_gift_name": v.blind.original_gift_name,
                "blind_price": v.blind.blind_price,
            }
        newEvent = {
            'room_display_id': event.get("room_display_id", ),
            'room_real_id': event.get("room_real_id", ),
            'data': {
                "data": base,
                "cmd": 'SEND_GIFT',
            },
            'type': 'SEND_GIFT',
        }
        print(newEvent)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant