mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-28 09:19:40 -05:00
TikTokLive client sevices customization
This commit is contained in:
@@ -24,6 +24,7 @@ package io.github.jwdeveloper.tiktok;
|
||||
|
||||
import io.github.jwdeveloper.dependance.Dependance;
|
||||
import io.github.jwdeveloper.dependance.api.DependanceContainer;
|
||||
import io.github.jwdeveloper.dependance.implementation.DependanceContainerBuilder;
|
||||
import io.github.jwdeveloper.tiktok.mappers.MessagesMapperFactory;
|
||||
import io.github.jwdeveloper.tiktok.common.LoggerFactory;
|
||||
import io.github.jwdeveloper.tiktok.data.events.*;
|
||||
@@ -63,6 +64,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
|
||||
protected final TikTokLiveEventHandler eventHandler;
|
||||
protected final List<TikTokEventListener> listeners;
|
||||
protected final List<Consumer<TikTokMapper>> onCustomMappings;
|
||||
protected final List<Consumer<DependanceContainerBuilder>> onCustomDependencies;
|
||||
|
||||
public TikTokLiveClientBuilder(String userName) {
|
||||
this.clientSettings = LiveClientSettings.createDefault();
|
||||
@@ -70,6 +72,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
|
||||
this.eventHandler = new TikTokLiveEventHandler();
|
||||
this.listeners = new ArrayList<>();
|
||||
this.onCustomMappings = new ArrayList<>();
|
||||
this.onCustomDependencies = new ArrayList<>();
|
||||
}
|
||||
|
||||
public LiveClientBuilder onMapping(Consumer<TikTokMapper> consumer) {
|
||||
@@ -88,6 +91,12 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LiveClientBuilder customize(Consumer<DependanceContainerBuilder> onCustomizeDependencies) {
|
||||
this.onCustomDependencies.add(onCustomizeDependencies);
|
||||
return this;
|
||||
}
|
||||
|
||||
protected void validate() {
|
||||
if (clientSettings.getClientLanguage() == null || clientSettings.getClientLanguage().isEmpty())
|
||||
clientSettings.setClientLanguage("en");
|
||||
@@ -175,6 +184,8 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
|
||||
//client
|
||||
dependance.registerSingleton(LiveClient.class, TikTokLiveClient.class);
|
||||
|
||||
onCustomDependencies.forEach(action -> action.accept(dependance));
|
||||
|
||||
var container = dependance.build();
|
||||
return container.find(LiveClient.class);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user