diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java b/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java
index 3161079..cce7a2a 100644
--- a/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java
+++ b/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java
@@ -61,6 +61,8 @@ public interface LiveClient {
*/
void publishEvent(TikTokEvent event);
+ void publishMessage(String base64);
+
/**
* Get information about gifts
*/
diff --git a/Tools-EventsCollector/pom.xml b/Tools-EventsCollector/pom.xml
deleted file mode 100644
index c6e91f4..0000000
--- a/Tools-EventsCollector/pom.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
- TikTokLiveJava
- io.github.jwdeveloper.tiktok
- 1.3.0-Release
-
- 4.0.0
-
- Tools-EventsCollector
-
-
- 16
- 16
- UTF-8
-
-
-
-
-
- org.xerial
- sqlite-jdbc
- 3.34.0
-
-
- org.jdbi
- jdbi3-core
- 3.23.0
-
-
- com.googlecode.protobuf-java-format
- protobuf-java-format
- 1.4
-
-
- org.jdbi
- jdbi3-sqlobject
- 3.23.0
-
-
- org.slf4j
- slf4j-simple
- 1.7.32
-
-
- io.github.jwdeveloper.tiktok
- Client
- ${project.version}
- compile
-
-
- io.github.jwdeveloper.tiktok
- Tools-ReadmeGenerator
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/TikTokLiveTools.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/TikTokLiveTools.java
deleted file mode 100644
index b305f6d..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/TikTokLiveTools.java
+++ /dev/null
@@ -1,65 +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.tools;
-
-import io.github.jwdeveloper.tiktok.tools.collector.client.TikTokDataCollectorBuilder;
-import io.github.jwdeveloper.tiktok.tools.collector.api.DataCollectorBuilder;
-import io.github.jwdeveloper.tiktok.tools.tester.TikTokDataTesterBuilder;
-import io.github.jwdeveloper.tiktok.tools.tester.api.DataTesterBuilder;
-
-public class TikTokLiveTools
-{
- /**
- *
- * @param databaseName dataCollector use sql-lite database to store message
- * if database not exits it creates new one
- * @return
- */
- public static DataCollectorBuilder createCollector(String databaseName)
- {
- return new TikTokDataCollectorBuilder(databaseName);
- }
-
- /**
- *
- * @param databaseName dataTester will read messages for database
- * before using dataTester, use dataCollector to create database
- * if database not exits exception will be thrown
- * @return
- */
- public static DataTesterBuilder createTester(String databaseName)
- {
- return new TikTokDataTesterBuilder(databaseName);
- }
-
- /**
- *
- * Returns browser application that collects and display Events, Messages, WebcastResponses
- * in online web editor so it's easier to read and analyze data structures
- * @return
- */
- public static void createWebViewer()
- {
-
- }
-}
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollector.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollector.java
deleted file mode 100644
index 52b3713..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollector.java
+++ /dev/null
@@ -1,33 +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.tools.collector.api;
-
-public interface DataCollector {
-
- void connect();
-
-
- void disconnect();
-
- void disconnect(boolean keepDatabase);
-}
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollectorBuilder.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollectorBuilder.java
deleted file mode 100644
index 74e05d4..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataCollectorBuilder.java
+++ /dev/null
@@ -1,44 +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.tools.collector.api;
-
-import io.github.jwdeveloper.tiktok.live.builder.LiveClientBuilder;
-import io.github.jwdeveloper.tiktok.tools.db.TikTokDatabase;
-
-import java.util.function.Consumer;
-
-public interface DataCollectorBuilder extends DataFilters {
- DataCollectorBuilder setOutputPath(String path);
- DataCollectorBuilder setSessionTag(String sessionTimestamp);
-
- DataCollectorBuilder setDatabase(TikTokDatabase database);
-
- DataCollectorBuilder configureLiveClient(Consumer consumer);
-
- DataCollectorBuilder addUser(String user);
-
- DataCollector buildAndRun();
-
- DataCollector build();
-
-}
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataFilters.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataFilters.java
deleted file mode 100644
index d1146e3..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/DataFilters.java
+++ /dev/null
@@ -1,35 +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.tools.collector.api;
-
-import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
-
-public interface DataFilters {
- T addMessageFilter(Class extends com.google.protobuf.GeneratedMessageV3> message);
-
- T addMessageFilter(String message);
-
- T addEventFilter(Class extends TikTokEvent> event);
-
- T addEventFilter(String event);
-}
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/TikTokDataCollectorModel.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/TikTokDataCollectorModel.java
deleted file mode 100644
index 47c9dfc..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/api/TikTokDataCollectorModel.java
+++ /dev/null
@@ -1,41 +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.tools.collector.api;
-
-import io.github.jwdeveloper.tiktok.live.builder.LiveClientBuilder;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Set;
-import java.util.function.Consumer;
-
-@Data
-public class TikTokDataCollectorModel {
- private List users;
- private String outputPath;
- private String outputName;
- private Set eventsFilter;
- private Set messagesFilter;
- private String sessionTag ="";
- private Consumer onConfigureLiveClient;
-}
diff --git a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/client/MessagesManager.java b/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/client/MessagesManager.java
deleted file mode 100644
index 5859099..0000000
--- a/Tools-EventsCollector/src/main/java/io/github/jwdeveloper/tiktok/tools/collector/client/MessagesManager.java
+++ /dev/null
@@ -1,103 +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.tools.collector.client;
-
-import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-import io.github.jwdeveloper.tiktok.FilesUtility;
-import io.github.jwdeveloper.tiktok.messages.webcast.WebcastResponse;
-import io.github.jwdeveloper.tiktok.utils.JsonUtil;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.File;
-import java.lang.reflect.Type;
-import java.nio.file.Paths;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.logging.Logger;
-
-public class MessagesManager {
-
- @Getter
- Map> messages;
- String outputName;
-
- int limit = 20;
- public MessagesManager(String outputName) {
- this.messages = new TreeMap<>();
- this.outputName = outputName;
- load();
- }
-
- public void addMessage(Logger logger, String host, WebcastResponse.Message message) {
- var name = message.getMethod();
- var payload = message.getPayload().toByteArray();
- var base64 = Base64.getEncoder().encodeToString(payload);
-
- if (!messages.containsKey(name)) {
- logger.info("New Message found! " + name);
- messages.put(name, new LinkedList<>());
- }
-
- var queue = messages.get(name);
- if (queue.size() > limit) {
- queue.remove();
- }
-
- queue.add(new MessageData(base64, host, LocalDateTime.now().toString()));
- save();
- }
-
- public String toJson() {
- return JsonUtil.toJson(messages);
- }
-
- public void load() {
- var file = new File(path());
- Type type = new TypeToken