From 4d4317d96c43f1f0cb75acf00987703ea790ae20 Mon Sep 17 00:00:00 2001 From: "jacek.wolniewicz" Date: Sun, 30 Jun 2024 07:28:50 +0200 Subject: [PATCH] Clean up code --- .../tiktok/handler/TikTokMessageHandler.java | 34 ------------------- .../tiktok/listener/ListenersManager.java | 1 + .../tiktok/live/builder/EventConsumer.java | 5 +++ .../tiktok/mappers/TikTokMapper.java | 7 +++- .../tiktok/TikTokLiveMessageHandler.java | 24 +++++++------ .../tiktok/http/HttpClientFactory.java | 2 ++ 6 files changed, 27 insertions(+), 46 deletions(-) delete mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/handler/TikTokMessageHandler.java diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/handler/TikTokMessageHandler.java b/API/src/main/java/io/github/jwdeveloper/tiktok/handler/TikTokMessageHandler.java deleted file mode 100644 index a5f1cb2..0000000 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/handler/TikTokMessageHandler.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2023-2023 jwdeveloper jacekwoln@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ -package io.github.jwdeveloper.tiktok.handler; - - -import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent; - -import java.util.List; - - -public interface TikTokMessageHandler -{ - List handle(byte[] messagePayload) throws Exception; -} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java b/API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java index e8a3097..09f430a 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java @@ -33,6 +33,7 @@ import java.util.List; public interface ListenersManager { List getListeners(); + void addListener(TikTokEventListener listener); void removeListener(TikTokEventListener listener); diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/live/builder/EventConsumer.java b/API/src/main/java/io/github/jwdeveloper/tiktok/live/builder/EventConsumer.java index 984ac8c..9ba91ba 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/live/builder/EventConsumer.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/live/builder/EventConsumer.java @@ -28,5 +28,10 @@ import io.github.jwdeveloper.tiktok.live.LiveClient; @FunctionalInterface public interface EventConsumer { + /** + * + * @param liveClient TikTok live client + * @param event event data object + */ void onEvent(LiveClient liveClient, T event); } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/mappers/TikTokMapper.java b/API/src/main/java/io/github/jwdeveloper/tiktok/mappers/TikTokMapper.java index d2597cb..479a386 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/mappers/TikTokMapper.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/mappers/TikTokMapper.java @@ -32,13 +32,18 @@ import java.util.function.Function; public interface TikTokMapper { /** - * * if mapper is not found for messageName, TikTokLiveException is thrown + * when mapper is not found for messageName, TikTokLiveException is thrown * * @param messageName * @return TikTokMapperModel */ TikTokMapperModel forMessage(String messageName); + /** + * + * @param mapperName protocol buffer class type + * @return + */ TikTokMapperModel forMessage(Class mapperName); TikTokMapperModel forMessage(String mapperName, MappingAction onMapping); diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveMessageHandler.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveMessageHandler.java index c0ffc12..8bd374f 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveMessageHandler.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveMessageHandler.java @@ -63,18 +63,20 @@ public class TikTokLiveMessageHandler { { var messageClassName = message.getMethod(); if (!mapper.isRegistered(messageClassName)) - tikTokEventHandler.publish(client, new TikTokWebsocketUnhandledMessageEvent(message)); - else { - var stopwatch = new Stopwatch(); - stopwatch.start(); - var events = mapper.handleMapping(messageClassName, message.getPayload().toByteArray()); - var handlingTimeInMs = stopwatch.stop(); - var metadata = new MessageMetaData(Duration.ofNanos(handlingTimeInMs)); + { + tikTokEventHandler.publish(client, new TikTokWebsocketUnhandledMessageEvent(message)); + return; + } - for (var event : events) { - tikTokEventHandler.publish(client, new TikTokWebsocketMessageEvent(message, event, metadata)); - tikTokEventHandler.publish(client, event); - } + var stopwatch = new Stopwatch(); + stopwatch.start(); + var events = mapper.handleMapping(messageClassName, message.getPayload().toByteArray()); + var handlingTimeInMs = stopwatch.stop(); + var metadata = new MessageMetaData(Duration.ofNanos(handlingTimeInMs)); + + for (var event : events) { + tikTokEventHandler.publish(client, new TikTokWebsocketMessageEvent(message, event, metadata)); + tikTokEventHandler.publish(client, event); } } } \ No newline at end of file diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/HttpClientFactory.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/HttpClientFactory.java index 8aa39ad..30fa1f1 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/HttpClientFactory.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/HttpClientFactory.java @@ -37,7 +37,9 @@ public class HttpClientFactory { return new HttpClientBuilder(url, liveClientSettings.getHttpSettings().clone()); } + //Does not contains default httpClientSettings, Params, headers, etd + //Edit: Do we even use it? public HttpClientBuilder clientEmpty(String url) { var settings = new HttpClientSettings(); settings.setProxyClientSettings(liveClientSettings.getHttpSettings().getProxyClientSettings());