Including toUser in TikTokGiftEvent

This commit is contained in:
JW
2023-12-19 21:31:58 +01:00
parent 4979c1b27a
commit 0bb8edfe5c
5 changed files with 29 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ import io.github.jwdeveloper.tiktok.annotations.EventMeta;
import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.annotations.EventType;
import io.github.jwdeveloper.tiktok.data.models.gifts.Gift; import io.github.jwdeveloper.tiktok.data.models.gifts.Gift;
import io.github.jwdeveloper.tiktok.data.models.gifts.GiftSendType; import io.github.jwdeveloper.tiktok.data.models.gifts.GiftSendType;
import io.github.jwdeveloper.tiktok.data.models.users.User;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage; import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
import lombok.Getter; import lombok.Getter;
@@ -40,7 +41,7 @@ import lombok.Getter;
* <p>Combo: 4 -> comboState = GiftSendType.Active</p> * <p>Combo: 4 -> comboState = GiftSendType.Active</p>
* <p>Combo: 8 -> comboState = GiftSendType.Active</p> * <p>Combo: 8 -> comboState = GiftSendType.Active</p>
* <p>Combo: 12 -> comboState = GiftSendType.Finsihed</p> * <p>Combo: 12 -> comboState = GiftSendType.Finsihed</p>
* * <p>
* Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered * Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered
*/ */
@EventMeta(eventType = EventType.Message) @EventMeta(eventType = EventType.Message)
@@ -48,8 +49,8 @@ import lombok.Getter;
public class TikTokGiftComboEvent extends TikTokGiftEvent { public class TikTokGiftComboEvent extends TikTokGiftEvent {
private final GiftSendType comboState; private final GiftSendType comboState;
public TikTokGiftComboEvent(Gift gift, WebcastGiftMessage msg, GiftSendType comboState) { public TikTokGiftComboEvent(Gift gift, User host, WebcastGiftMessage msg, GiftSendType comboState) {
super(gift, msg); super(gift, host, msg);
this.comboState = comboState; this.comboState = comboState;
} }
} }

View File

@@ -49,11 +49,15 @@ public class TikTokGiftEvent extends TikTokHeaderEvent {
private final User toUser; private final User toUser;
private final int combo; private final int combo;
public TikTokGiftEvent(Gift gift, WebcastGiftMessage msg) { public TikTokGiftEvent(Gift gift, User liveHost, WebcastGiftMessage msg) {
super(msg.getCommon()); super(msg.getCommon());
this.gift = gift; this.gift = gift;
user = User.map(msg.getUser(), msg.getUserIdentity()); user = User.map(msg.getUser(), msg.getUserIdentity());
toUser = new User(msg.getUserGiftReciever().getUserId(), "", "", new Picture(""), 0, 0, new ArrayList<>()); if (msg.getToUser().getNickname().isEmpty()) {
toUser = liveHost;
} else {
toUser = User.map(msg.getToUser());
}
combo = msg.getComboCount(); combo = msg.getComboCount();
} }
} }

View File

@@ -18,7 +18,7 @@ message WebcastPushFrame {
uint64 LogId = 2; uint64 LogId = 2;
uint64 Service = 3; uint64 Service = 3;
uint64 Method = 4; uint64 Method = 4;
map<string,string> headers = 5; map<string, string> headers = 5;
string PayloadEncoding = 6; string PayloadEncoding = 6;
string PayloadType = 7; string PayloadType = 7;
bytes Payload = 8; bytes Payload = 8;
@@ -68,6 +68,7 @@ message WebcastGiftMessage {
int32 repeatCount = 5; int32 repeatCount = 5;
int32 comboCount = 6; int32 comboCount = 6;
User user = 7; User user = 7;
User toUser = 8;
int32 repeatEnd = 9; int32 repeatEnd = 9;
int64 groupId = 11; int64 groupId = 11;
int64 incomeTaskgifts = 12; int64 incomeTaskgifts = 12;
@@ -84,8 +85,8 @@ message WebcastGiftMessage {
message UserGiftReciever message UserGiftReciever
{ {
int64 userId =1; int64 userId = 1;
string deviceName = 10; string deviceName = 10;
} }
message GiftIMPriority { message GiftIMPriority {
@@ -203,7 +204,7 @@ message WebcastChatMessage {
int32 quickChatScene = 16; int32 quickChatScene = 16;
int32 communityFlaggedStatus = 17; int32 communityFlaggedStatus = 17;
UserIdentity UserIdentity = 18; UserIdentity UserIdentity = 18;
map<int32,string> CommentQualityScores = 19; map<int32, string> CommentQualityScores = 19;
// @EmoteWithIndex // @EmoteWithIndex
// proto.webcast.im.ChatMessage // proto.webcast.im.ChatMessage
@@ -283,14 +284,14 @@ message WebcastGoalUpdateMessage {
int64 contributorId = 4; int64 contributorId = 4;
Image contributorAvatar = 5; Image contributorAvatar = 5;
string contributorDisplayId = 6; string contributorDisplayId = 6;
// SubGoal contributeSubgoal = 7; // SubGoal contributeSubgoal = 7;
int64 contributeCount = 9; int64 contributeCount = 9;
int64 contributeScore = 10; int64 contributeScore = 10;
int64 giftRepeatCount = 11; int64 giftRepeatCount = 11;
string contributorIdStr = 12; string contributorIdStr = 12;
bool pin = 13; bool pin = 13;
bool unpin = 14; bool unpin = 14;
// GoalPinInfo pinInfo = 15; // GoalPinInfo pinInfo = 15;
} }
// Message related to Chat-moderation? // Message related to Chat-moderation?
@@ -354,7 +355,7 @@ message WebcastSocialMessage {
message WebcastSubNotifyMessage { message WebcastSubNotifyMessage {
Common common = 1; Common common = 1;
User user = 2; User user = 2;
// ExhibitionType exhibitionType = 3; // Enum // ExhibitionType exhibitionType = 3; // Enum
int64 subMonth = 4; int64 subMonth = 4;
SubscribeType subscribeType = 5; // Enum SubscribeType subscribeType = 5; // Enum
OldSubscribeStatus oldSubscribeStatus = 6; // Enum OldSubscribeStatus oldSubscribeStatus = 6; // Enum
@@ -681,7 +682,7 @@ message WebcastMsgDetectMessage {
bool detectP2PMsg = 3; bool detectP2PMsg = 3;
bool detectRoomMsg = 4; bool detectRoomMsg = 4;
bool httpOptimize = 5; bool httpOptimize = 5;
} }
} }
//@WebcastOecLiveShoppingMessage //@WebcastOecLiveShoppingMessage
@@ -751,11 +752,11 @@ message WebcastLinkMessage {
LinkerUpdateUserSettingContent UpdateUserSettingContent = 18; LinkerUpdateUserSettingContent UpdateUserSettingContent = 18;
LinkerMicIdxUpdateContent MicIdxUpdateContent = 19; LinkerMicIdxUpdateContent MicIdxUpdateContent = 19;
LinkerListChangeContent ListChangeContent = 20; LinkerListChangeContent ListChangeContent = 20;
// CohostListChangeContent CohostListChangeContent = 21; // CohostListChangeContent CohostListChangeContent = 21;
LinkerMediaChangeContent MediaChangeContent = 22; LinkerMediaChangeContent MediaChangeContent = 22;
LinkerAcceptNoticeContent ReplyAcceptNoticeContent = 23; LinkerAcceptNoticeContent ReplyAcceptNoticeContent = 23;
LinkerSysKickOutContent SysKickOutContent = 101; LinkerSysKickOutContent SysKickOutContent = 101;
// LinkmicUserToastContent UserToastContent = 102; // LinkmicUserToastContent UserToastContent = 102;
string Extra = 200; string Extra = 200;
int64 ExpireTimestamp = 201; int64 ExpireTimestamp = 201;
string TransferExtra = 202; string TransferExtra = 202;

View File

@@ -192,7 +192,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
//ConnectionEvents events //ConnectionEvents events
var commonHandler = new TikTokCommonEventHandler(); var commonHandler = new TikTokCommonEventHandler();
var giftHandler = new TikTokGiftEventHandler(giftManager); var giftHandler = new TikTokGiftEventHandler(giftManager, roomInfo);
var roomInfoHandler = new TikTokRoomInfoEventHandler(roomInfo); var roomInfoHandler = new TikTokRoomInfoEventHandler(roomInfo);
var socialHandler = new TikTokSocialMediaEventHandler(roomInfo); var socialHandler = new TikTokSocialMediaEventHandler(roomInfo);

View File

@@ -22,6 +22,7 @@
*/ */
package io.github.jwdeveloper.tiktok.mappers.handlers; package io.github.jwdeveloper.tiktok.mappers.handlers;
import io.github.jwdeveloper.tiktok.TikTokRoomInfo;
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent; import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftComboEvent; import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftComboEvent;
import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent; import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent;
@@ -43,17 +44,19 @@ import java.util.Map;
public class TikTokGiftEventHandler { public class TikTokGiftEventHandler {
private final GiftManager giftManager; private final GiftManager giftManager;
private final Map<Long, WebcastGiftMessage> giftsMessages; private final Map<Long, WebcastGiftMessage> giftsMessages;
private final TikTokRoomInfo tikTokRoomInfo;
public TikTokGiftEventHandler(GiftManager giftManager) { public TikTokGiftEventHandler(GiftManager giftManager, TikTokRoomInfo tikTokRoomInfo) {
this.giftManager = giftManager; this.giftManager = giftManager;
giftsMessages = new HashMap<>(); giftsMessages = new HashMap<>();
this.tikTokRoomInfo = tikTokRoomInfo;
} }
@SneakyThrows @SneakyThrows
public MappingResult handleGifts(byte[] msg, String name, TikTokMapperHelper helper) { public MappingResult handleGifts(byte[] msg, String name, TikTokMapperHelper helper) {
var currentMessage = WebcastGiftMessage.parseFrom(msg); var currentMessage = WebcastGiftMessage.parseFrom(msg);
var gifts = handleGift(currentMessage); var gifts = handleGift(currentMessage);
return MappingResult.of(currentMessage,gifts); return MappingResult.of(currentMessage, gifts);
} }
public List<TikTokEvent> handleGift(WebcastGiftMessage currentMessage) { public List<TikTokEvent> handleGift(WebcastGiftMessage currentMessage) {
@@ -101,12 +104,12 @@ public class TikTokGiftEventHandler {
private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) { private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) {
var gift = getGiftObject(message); var gift = getGiftObject(message);
return new TikTokGiftEvent(gift, message); return new TikTokGiftEvent(gift, tikTokRoomInfo.getHost(), message);
} }
private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) { private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) {
var gift = getGiftObject(message); var gift = getGiftObject(message);
return new TikTokGiftComboEvent(gift, message, state); return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state);
} }
private Gift getGiftObject(WebcastGiftMessage giftMessage) { private Gift getGiftObject(WebcastGiftMessage giftMessage) {