Skip to content

Commit 15d5c8b

Browse files
committed
Add Goody Bag proto for testing and update TikTokBarrageEvent for potential use in SuperFan events.
1 parent 203d7f4 commit 15d5c8b

4 files changed

Lines changed: 84 additions & 6 deletions

File tree

API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokBarrageEvent.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,12 @@ public class TikTokBarrageEvent extends TikTokHeaderEvent {
3939
private final String eventName;
4040
private final int duration;
4141
private final BarrageParam barrageParam;
42+
// Expose for now until we know what this is used for
43+
private final WebcastBarrageMessage barrageMessage;
4244

4345
public TikTokBarrageEvent(WebcastBarrageMessage msg) {
4446
super(msg.getCommon());
47+
this.barrageMessage = msg;
4548
icon = Picture.map(msg.getIcon());
4649
eventName = msg.getEvent().getEventName();
4750
backGround = Picture.map(msg.getBackground());

API/src/main/proto/enums.proto

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -835,4 +835,34 @@ enum BattleCardMsgType {
835835
BATTLE_CARD_MSG_TYPE_SPECIAL_EFFECT_NOTICE = 9;
836836
BATTLE_CARD_MSG_TYPE_USE_TOP_2_CARD = 10;
837837
BATTLE_CARD_MSG_TYPE_USE_TOP_3_CARD = 11;
838+
}
839+
840+
enum GoodyBagMessageType {
841+
GOODY_BAG_MESSAGE_TYPE_UNKNOWN = 0;
842+
GOODY_BAG_MESSAGE_TYPES_END = 1;
843+
GOODY_BAG_MESSAGE_TYPE_JOIN = 2;
844+
GOODY_BAG_MESSAGE_TYPE_WINNERS_INFO = 3;
845+
}
846+
847+
enum GoodyBagBiz {
848+
GOODY_BAG_BIZ_UNKNOWN = 0;
849+
GOODY_BAG_BIZ_NORMAL_COIN = 1;
850+
GOODY_BAG_BIZ_FANS_CLUB = 2;
851+
GOODY_BAG_BIZ_PLATFORM_NORMAL = 100;
852+
GOODY_BAG_BIZ_PLATFORM_FANS_CLUB = 101;
853+
GOODY_BAG_BIZ_LEVEL_UP_PARTY_REWARD_NORMAL = 110;
854+
GOODY_BAG_BIZ_LEVEL_UP_PARTY_REWARD_FANS_CLUB = 111;
855+
}
856+
857+
enum ParticipateMethod {
858+
PARTICIPATE_METHOD_UNKNOWN = 0;
859+
PARTICIPATE_METHOD_COMMENT = 1;
860+
PARTICIPATE_METHOD_SHARE = 2;
861+
PARTICIPATE_METHOD_NO_THRESHOLD = 3;
862+
}
863+
864+
enum ParticipateThresholdType {
865+
PARTICIPATE_THRESHOLD_TYPE_PARTICIPATE_THRESHOLD_UNKNOWN = 0;
866+
PARTICIPATE_THRESHOLD_TYPE_PARTICIPATE_THRESHOLD_ALL_VIEWER = 1;
867+
PARTICIPATE_THRESHOLD_TYPE_PARTICIPATE_THRESHOLD_FANS_CLUB = 2;
838868
}

API/src/main/proto/webcast.proto

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1588,4 +1588,50 @@ message WebcastLinkMicBattleItemCard {
15881588
CommonCardInfo common = 1;
15891589
}
15901590
}
1591+
}
1592+
1593+
message WebcastGoodyBagMessage {
1594+
CommonMessageData base_message = 1;
1595+
GoodyBagBaseInfo base_info = 2;
1596+
repeated GoodyBagWinnerInfo winners = 3;
1597+
GoodyBagMessageType type = 4;
1598+
1599+
message GoodyBagBaseInfo {
1600+
string goody_bag_id = 1;
1601+
GoodyBagBiz biz = 2;
1602+
string room_id = 3;
1603+
GoodyBagCommonDetail common_detail = 4;
1604+
GoodyBagCoinDetail coin_detail = 5;
1605+
1606+
message GoodyBagCommonDetail {
1607+
int32 winner_headcount = 1;
1608+
int32 joined_headcount = 2;
1609+
ParticipateMethod participate_method = 3;
1610+
string participate_method_content = 4;
1611+
int32 open_at = 5;
1612+
int32 count_down_minutes = 6;
1613+
ParticipateThresholdSelected participate_threshold_selected = 7;
1614+
1615+
message ParticipateThresholdSelected {
1616+
ParticipateThresholdType type = 1;
1617+
int64 value = 2;
1618+
}
1619+
}
1620+
1621+
message GoodyBagCoinDetail {
1622+
int32 total_coin = 1;
1623+
}
1624+
}
1625+
1626+
message GoodyBagWinnerInfo {
1627+
GoodyBagUserInfo user_info = 1;
1628+
int32 coins = 2;
1629+
}
1630+
1631+
message GoodyBagUserInfo {
1632+
string user_id = 1;
1633+
string nickname = 2;
1634+
string display_id = 3;
1635+
Image avatar = 4;
1636+
}
15911637
}

Client/src/main/java/io/github/jwdeveloper/tiktok/mappers/MessagesMapperFactory.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@
2626
import io.github.jwdeveloper.tiktok.data.events.*;
2727
import io.github.jwdeveloper.tiktok.data.events.link.*;
2828
import io.github.jwdeveloper.tiktok.mappers.data.MappingResult;
29-
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokCommonEventHandler;
30-
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokGiftEventHandler;
31-
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokRoomInfoEventHandler;
32-
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokSocialMediaEventHandler;
29+
import io.github.jwdeveloper.tiktok.mappers.handlers.*;
3330
import io.github.jwdeveloper.tiktok.messages.webcast.*;
3431

3532
import static io.github.jwdeveloper.tiktok.messages.enums.LinkMessageType.*;
@@ -58,7 +55,6 @@ public static TikTokLiveMapper create(DependanceContainer container) {
5855
return MappingResult.of(messageObject, new TikTokCaptionEvent(messageObject));
5956
});
6057

61-
6258
//User Interactions events
6359
mapper.forMessage(WebcastChatMessage.class, (inputBytes, messageName, mapperHelper) ->
6460
{
@@ -145,7 +141,10 @@ public static TikTokLiveMapper create(DependanceContainer container) {
145141
//Others events
146142
// mapper.webcastObjectToConstructor(WebcastInRoomBannerMessage.class, TikTokInRoomBannerEvent.class);
147143
// mapper.webcastObjectToConstructor(WebcastMsgDetectMessage.class, TikTokDetectEvent.class);
148-
// mapper.webcastObjectToConstructor(WebcastBarrageMessage.class, TikTokBarrageEvent.class);
144+
mapper.forMessage(WebcastBarrageMessage.class, (inputBytes, messageName, mapperHelper) -> {
145+
var message = mapperHelper.bytesToWebcastObject(inputBytes, WebcastBarrageMessage.class);
146+
return MappingResult.of(message, new TikTokBarrageEvent(message));
147+
});
149148
// mapper.webcastObjectToConstructor(WebcastUnauthorizedMemberMessage.class, TikTokUnauthorizedMemberEvent.class);
150149
// mapper.webcastObjectToConstructor(WebcastOecLiveShoppingMessage.class, TikTokShopEvent.class);
151150
// mapper.webcastObjectToConstructor(WebcastImDeleteMessage.class, TikTokIMDeleteEvent.class);

0 commit comments

Comments
 (0)