Update gifts manager

This commit is contained in:
JW
2024-02-25 21:29:21 +01:00
parent 63dd8c20ac
commit 0fcac60cbe
12 changed files with 30 additions and 29 deletions

View File

@@ -93,6 +93,7 @@ public class TikTokLive {
}
//I don't like it, but it is reasonable for now
private static GiftsManager giftsManager;
/**
@@ -100,21 +101,18 @@ public class TikTokLive {
*
* @return GiftsManager
*/
public static GiftsManager gifts()
{
if(giftsManager != null)
{
public static GiftsManager gifts() {
if (giftsManager != null) {
return giftsManager;
}
try
synchronized (GiftsManager.class)
{
giftsManager = new TikTokGiftsManager(requests().fetchGiftsData().getGifts());
return giftsManager;
} catch (Exception ex)
{
throw ex;
if (giftsManager == null)
{
return new TikTokGiftsManager(requests().fetchGiftsData().getGifts());
}
}
return giftsManager;
}

View File

@@ -58,6 +58,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
protected final List<TikTokEventListener> listeners;
protected Consumer<TikTokMapper> onCustomMappings;
protected Logger logger;
protected GiftsManager giftsManager;
public TikTokLiveClientBuilder(String userName) {
this.clientSettings = LiveClientSettings.createDefault();
@@ -99,6 +100,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
httpSettings.getParams().put("webcast_language", clientSettings.getClientLanguage());
this.logger = LoggerFactory.create(clientSettings.getHostName(), clientSettings);
this.giftsManager = clientSettings.isFetchGifts() ? TikTokLive.gifts() : new TikTokGiftsManager(List.of());
}
public LiveClient build() {
@@ -112,8 +114,6 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
var httpClientFactory = new HttpClientFactory(clientSettings);
var tikTokLiveHttpClient = new TikTokLiveHttpClient(httpClientFactory, clientSettings);
var gifts = tikTokLiveHttpClient.getGiftsData().getGifts();
var giftsManager = new TikTokGiftsManager(gifts);
var eventsMapper = createMapper(giftsManager, tiktokRoomInfo);
var messageHandler = new TikTokLiveMessageHandler(tikTokEventHandler, eventsMapper);

View File

@@ -14,7 +14,8 @@ import java.util.stream.Collectors;
public class TikTokGiftsManager implements GiftsManager {
private final Map<Integer, Gift> giftsByIdIndex;
public TikTokGiftsManager(List<Gift> giftList) {
public TikTokGiftsManager(List<Gift> giftList)
{
giftsByIdIndex = giftList.stream().collect(Collectors.toConcurrentMap(Gift::getId, e -> e));
}