Skip to content

Commit

Permalink
Fix isSubscriber flag
Browse files Browse the repository at this point in the history
  • Loading branch information
zerodytrash committed Aug 25, 2022
1 parent 03bcd66 commit 25752a9
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 6 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tiktok-live-connector",
"version": "0.9.29",
"version": "0.9.30",
"description": "Node.js module to receive live stream chat events like comments and gifts from TikTok LIVE",
"main": "index.js",
"engines": {
Expand Down
14 changes: 10 additions & 4 deletions src/lib/webcastDataConverter.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,13 @@ function getUserAttributes(webcastUser) {
};
}

userAttributes.isModerator = userAttributes.userBadges.some((x) => x.type && x.type.toLowerCase().includes('moderator'));
// badgeSceneType:1 = ADMIN
// badgeSceneType:4 = SUBSCRIBER
// badgeSceneType:7 = NEWSUBSCRIBER

userAttributes.isModerator = userAttributes.userBadges.some((x) => (x.type && x.type.toLowerCase().includes('moderator')) || x.badgeSceneType === 1);
userAttributes.isNewGifter = userAttributes.userBadges.some((x) => x.type && x.type.toLowerCase().includes('live_ng_'));
userAttributes.isSubscriber = userAttributes.userBadges.some((x) => x.url && x.url.toLowerCase().includes('/sub_'));
userAttributes.isSubscriber = userAttributes.userBadges.some((x) => (x.url && x.url.toLowerCase().includes('/sub_')) || x.badgeSceneType === 4 || x.badgeSceneType === 7);
userAttributes.topGifterRank =
userAttributes.userBadges
.find((x) => x.url && x.url.includes('/ranklist_top_gifter_'))
Expand Down Expand Up @@ -185,16 +189,18 @@ function mapBadges(badges) {

if (Array.isArray(badges)) {
badges.forEach((innerBadges) => {
let badgeSceneType = innerBadges.badgeSceneType;

if (Array.isArray(innerBadges.badges)) {
innerBadges.badges.forEach((badge) => {
simplifiedBadges.push(Object.assign({}, badge));
simplifiedBadges.push(Object.assign({ badgeSceneType }, badge));
});
}

if (Array.isArray(innerBadges.imageBadges)) {
innerBadges.imageBadges.forEach((badge) => {
if (badge && badge.image && badge.image.url) {
simplifiedBadges.push({ type: 'image', displayType: badge.displayType, url: badge.image.url });
simplifiedBadges.push({ type: 'image', badgeSceneType, displayType: badge.displayType, url: badge.image.url });
}
});
}
Expand Down
3 changes: 2 additions & 1 deletion src/proto/tiktokSchema.proto
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,9 @@ message ProfilePicture {


message UserBadgesAttributes {
repeated UserBadge badges = 21;
int32 badgeSceneType = 3;
repeated UserImageBadge imageBadges = 20;
repeated UserBadge badges = 21;
}

message UserBadge {
Expand Down

0 comments on commit 25752a9

Please sign in to comment.