Compare commits

...

8 Commits

Author SHA1 Message Date
JW
a2b10ba7f6 Merge remote-tracking branch 'origin/master' 2023-10-12 15:16:53 +02:00
JW
957e38a5d2 Bug fixed: All the gifts had before same image link 2023-10-12 15:16:43 +02:00
Jacek W
5e77b3f57f Update README.md 2023-10-12 09:01:29 +02:00
Jacek W
690b9eb272 Update README.md 2023-10-12 06:19:43 +02:00
Jacek W
fc91991c2c Merge pull request #9 from jwdeveloper/jwdeveloper-patch-1
Update README.md
2023-10-12 06:13:48 +02:00
Jacek W
0f735a7876 Update README.md 2023-10-12 06:13:28 +02:00
JW
4d8d785dc7 1.0.0 MAJOR update
# 1.0.0 Update

Official version of Tiktok live Java. Code has been restructure, improve and renamed to make
using simpler and more intuitive, since that library is no longer compatable with longer versions.

# Breaking changes:

## Configuration

- `clientSettings.setHandleExistingMessagesOnConnect(true)` Renamed to `setHandleExistingEvents()`
- `clientSettings.setDownloadGiftInfo(true);`  Removed
- `clientSettings.setPrintMessageData(false);` Removed

## Events

### Added
  - `onGiftCombo`
              onGiftComboevent is invoked for all give events, it contains 3 combo stages
              I would suggest to use it for somekind of visualizations

                  * `GiftSendType.Begin`
                  * `GiftSendType.Active`
                  * `GiftSendType.Finished`

  - `onWebsocketResponse`
  - `onRoomUserInfo`
  - `onRoom`
  - `onQuestion`

### Changed
   - `onComment`
   - `onGiftMessage -> onGift`
          OnGift event is now invoked only when combo has been finished of gift is not strakeable (exprensive)

   - `onRoomMessage -> onRoom`

### Removed

I wasn't sure if those events are working, so I decided to remove them for now
but they will be gradually added again with next updates

- `onLinkMicFanTicket`
- `onEnvelope`
- `onShop`
- `onDetect`
- `onLinkLayer`
- `onCaption`
- `onRoomPin`
- `onBarrage`
- `onLinkMicArmies`
- `onUnauthorizedMember`
- `onInRoomBanner`
- `onLinkMicMethod`
- `onPoll`
- `onGoalUpdate`
- `onRankUpdate`
- `onIMDelete`
- `onRankText`
- `onUnhandledMember`
- `onSubNotify`
- `onLinkMicBattle`
- `onUnhandledControl`

## Gifts

`Gitf` has been changed from `class` to `enum` that allows to simple use by checking avaliable values
and using `switch expression`

### Example

```java

Gift gift = Gift.GIFT_BOX;
switch (gift) {
     case ROSE -> print(ConsoleColors.RED, "Rose!");
     case GG -> print(ConsoleColors.YELLOW, " GOOD GAME!");
     case TIKTOK -> print(ConsoleColors.CYAN,"Thanks for TikTok");
     default -> print(ConsoleColors.GREEN, "[Thanks for gift] ", ConsoleColors.YELLOW, event.getGift().getName(), "x", event.getCombo());
 }
```

## GiftManager

### New Methods
```java

    Gift registerGift(int id, String name, int diamondCost, Picture picture);

    Gift findById(int giftId);

    Gift findByName(String giftName);

    List<Gift> getGifts();
```

## LiveClient

###  New Methods

```java

  void connectAsync(Consumer<LiveClient> onConnection);

  CompletableFuture<LiveClient> connectAsync();

  Logger getLogger();
```

## LiveRoomInfo

### New Methods
```java

     int getViewersCount();

     int getLikesCount();

     boolean isAgeRestricted();
```
2023-10-12 06:07:05 +02:00
Jacek W
d8b75af6af Merge pull request #8 from jwdeveloper/develop-1_0_0
1.0.0 Release
2023-10-12 06:03:35 +02:00
19 changed files with 17072 additions and 797 deletions

309
.gitignore vendored
View File

@@ -1,61 +1,85 @@
# Project exclude paths backend-infrastructure/.aws-sam
/API/target/
/Client/target/
*.db
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Created by https://www.gitignore.io/api/osx,linux,python,windows,pycharm,visualstudiocode
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### OSX ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### PyCharm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff # User-specific stuff:
.idea/**/workspace.xml .idea/**/workspace.xml
.idea/**/tasks.xml .idea/**/tasks.xml
.idea/**/usage.statistics.xml .idea/dictionaries
.idea/**/dictionaries .idea/
.idea/**/shelf
# AWS User-specific # Sensitive or high-churn files:
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/ .idea/**/dataSources/
.idea/**/dataSources.ids .idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml .idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml .idea/**/sqlDataSources.xml
.idea/**/dynamic.xml .idea/**/dynamic.xml
.idea/**/uiDesigner.xml .idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle # Gradle:
.idea/**/gradle.xml .idea/**/gradle.xml
.idea/**/libraries .idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake # CMake
cmake-build-*/ cmake-build-debug/
# Mongo Explorer plugin # Mongo Explorer plugin:
.idea/**/mongoSettings.xml .idea/**/mongoSettings.xml
# File-based project format ## File-based project format:
*.iws *.iws
## Plugin-specific files:
# IntelliJ # IntelliJ
out/ /out/
# mpeltonen/sbt-idea plugin # mpeltonen/sbt-idea plugin
.idea_modules/ .idea_modules/
@@ -66,8 +90,8 @@ atlassian-ide-plugin.xml
# Cursive Clojure plugin # Cursive Clojure plugin
.idea/replstate.xml .idea/replstate.xml
# SonarLint plugin # Ruby plugin and RubyMine
.idea/sonarlint/ /.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ) # Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml com_crashlytics_export_strings.xml
@@ -75,69 +99,150 @@ crashlytics.properties
crashlytics-build.properties crashlytics-build.properties
fabric.properties fabric.properties
# Editor-based Rest Client ### PyCharm Patch ###
.idea/httpRequests # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# Android studio 3.1+ serialized cache file *.iml
.idea/caches/build_file_checksums.ser modules.xml
/.idea/.gitignore .idea/misc.xml
/.idea/.name *.ipr
/.idea/compiler.xml
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ConfigurationExample.class # Sonarlint plugin
/TestApplication/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst .idea/sonarlint
/TestApplication/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
/Tools/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst ### Python ###
/Tools/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst # Byte-compiled / optimized / DLL files
/Tools-EventsCollector/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst __pycache__/
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst *.py[cod]
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst *$py.class
/.idea/encodings.xml
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/EventsListGenerator$EventTypeComparator.class # C extensions
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/EventsListGenerator.class *.so
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/ExceptionInfoModel.class
/Tools/target/classes/io/github/jwdeveloper/tiktok/utils/FilesUtility.class # Distribution / packaging
/TestApplication/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst .Python
/TestApplication/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst build/
/Tools/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst develop-eggs/
/Tools/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst dist/
/Tools-EventsCollector/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst downloads/
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst eggs/
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst .eggs/
/.idea/jarRepositories.xml lib/
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ListenerExample$CustomListener.class lib64/
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ListenerExample.class parts/
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/LiveClientMethodsGenerator.class sdist/
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/Main.class var/
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/Main.class wheels/
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/Main.class *.egg-info/
/.idea/misc.xml .installed.cfg
/Tools-ReadmeGenerator/src/main/resources/output.md *.egg
/Tools-ReadmeGenerator/target/classes/output.md
/TestApplication/target/maven-archiver/pom.properties # PyInstaller
/Tools/target/maven-archiver/pom.properties # Usually these files are written by a python script from a template
/Tools-EventsCollector/target/maven-archiver/pom.properties # before PyInstaller builds the exe, so as to inject date/other infos into it.
/Tools-ReadmeGenerator/target/maven-archiver/pom.properties *.manifest
/.idea/inspectionProfiles/Project_Default.xml *.spec
/Tools/target/classes/io/github/jwdeveloper/tiktok/protocol/ProtocolGenerator.class
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/ReadmeGenerator.class # Installer logs
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/SimpleExample.class pip-log.txt
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/SqlConsts.class pip-delete-this-directory.txt
/Tools-ReadmeGenerator/target/classes/template.md
/Tools/target/classes/io/github/jwdeveloper/tiktok/utils/TemplateUtility.class # Unit test / coverage reports
/TestApplication/target/TestApplication-0.0.18-Release.jar htmlcov/
/TestApplication/target/TestApplication-0.0.18-Release-all.jar .tox/
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokDatabase.class .coverage
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokErrorModel$TikTokErrorModelBuilder.class .coverage.*
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokErrorModel.class .cache
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokErrorModelDAO.class .pytest_cache/
/target/TikTokLiveJava-0.0.18-Release-all.pom nosetests.xml
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokMessageModel$TikTokMessageModelBuilder.class coverage.xml
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokMessageModel.class *.cover
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokMessageModelDAO.class .hypothesis/
/Tools/target/Tools-0.0.18-Release.jar
/Tools/target/Tools-0.0.18-Release-all.jar # Translations
/Tools-EventsCollector/target/Tools-EventsCollector-0.0.18-Release.jar *.mo
/Tools-EventsCollector/target/Tools-EventsCollector-0.0.18-Release-all.jar *.pot
/Tools-ReadmeGenerator/target/Tools-ReadmeGenerator-0.0.18-Release.jar
/Tools-ReadmeGenerator/target/Tools-ReadmeGenerator-0.0.18-Release-all.jar # Flask stuff:
/.idea/vcs.xml instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule.*
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history
### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
**/target/
# Build folder
*/build/*
# End of https://www.gitignore.io/api/osx,linux,python,windows,pycharm,visualstudiocode
/python-app-backend/samconfig.toml
/java-app-backend/BackendFunction/dependency-reduced-pom.xml

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>API</artifactId> <artifactId>API</artifactId>

View File

@@ -51,7 +51,7 @@ public class Picture {
public static Picture map(io.github.jwdeveloper.tiktok.messages.data.Image profilePicture) { public static Picture map(io.github.jwdeveloper.tiktok.messages.data.Image profilePicture) {
var index = profilePicture.getUrlListCount() - 1; var index = profilePicture.getUrlListCount() - 1;
if (index <= 0) { if (index < 0) {
return new Picture(""); return new Picture("");
} }
var url = profilePicture.getUrlList(index); var url = profilePicture.getUrlList(index);

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@@ -28,9 +28,11 @@ import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent;
import io.github.jwdeveloper.tiktok.data.models.Picture; import io.github.jwdeveloper.tiktok.data.models.Picture;
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.exceptions.TikTokLiveException;
import io.github.jwdeveloper.tiktok.live.GiftManager; import io.github.jwdeveloper.tiktok.live.GiftManager;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage; import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import sun.misc.Unsafe;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -45,9 +47,8 @@ public class TikTokGiftEventHandler {
giftsMessages = new HashMap<>(); giftsMessages = new HashMap<>();
} }
@SneakyThrows public List<TikTokEvent> handleGift(WebcastGiftMessage currentMessage)
public List<TikTokEvent> handleGift(byte[] msg) { {
var currentMessage = WebcastGiftMessage.parseFrom(msg);
var userId = currentMessage.getUser().getId(); var userId = currentMessage.getUser().getId();
var currentType = GiftSendType.fromNumber(currentMessage.getSendType()); var currentType = GiftSendType.fromNumber(currentMessage.getSendType());
var containsPreviousMessage = giftsMessages.containsKey(userId); var containsPreviousMessage = giftsMessages.containsKey(userId);
@@ -80,6 +81,13 @@ public class TikTokGiftEventHandler {
return List.of(); return List.of();
} }
@SneakyThrows
public List<TikTokEvent> handleGift(byte[] msg) {
var currentMessage = WebcastGiftMessage.parseFrom(msg);
return handleGift(currentMessage);
}
private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) { private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) {
var gift = getGiftObject(message); var gift = getGiftObject(message);
@@ -103,6 +111,24 @@ public class TikTokGiftEventHandler {
giftMessage.getGift().getDiamondCount(), giftMessage.getGift().getDiamondCount(),
Picture.map(giftMessage.getGift().getImage())); Picture.map(giftMessage.getGift().getImage()));
} }
if (gift.getPicture().getLink().endsWith(".webp")) {
updatePicture(gift, giftMessage);
}
return gift; return gift;
} }
private void updatePicture(Gift gift, WebcastGiftMessage webcastGiftMessage) {
try {
var picture = Picture.map(webcastGiftMessage.getGift().getImage());
var constructor = Unsafe.class.getDeclaredConstructors()[0];
constructor.setAccessible(true);
var field = Gift.class.getDeclaredField("picture");
field.setAccessible(true);
field.set(gift, picture);
} catch (Exception e) {
throw new TikTokLiveException("Unable to update picture in gift: " + gift.toString());
}
}
} }

View File

@@ -0,0 +1,65 @@
package io.github.jwdeveloper.tiktok.handlers.events;
import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent;
import io.github.jwdeveloper.tiktok.data.models.Picture;
import io.github.jwdeveloper.tiktok.gifts.TikTokGiftManager;
import io.github.jwdeveloper.tiktok.messages.data.GiftStruct;
import io.github.jwdeveloper.tiktok.messages.data.Image;
import io.github.jwdeveloper.tiktok.messages.data.User;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TikTokGiftEventHandlerTest {
public static TikTokGiftEventHandler handler;
@BeforeAll
public void before() {
var manager = new TikTokGiftManager();
manager.registerGift(123, "example", 123, new Picture("image.webp"));
handler = new TikTokGiftEventHandler(manager);
}
@Test
void shouldHandleGifts() {
var message = getGiftMessage("example-new-name", 123, "image-new.png", 0, 1);
var result = handler.handleGift(message);
Assertions.assertEquals(1, result.size());
var event = (TikTokGiftEvent) result.get(0);
var gift = event.getGift();
Assertions.assertEquals("image-new.png",gift.getPicture().getLink());
Assertions.assertEquals(123,gift.getId());
}
public WebcastGiftMessage getGiftMessage(String giftName,
int giftId,
String giftImage,
int sendType,
int userId) {
var builder = WebcastGiftMessage.newBuilder();
var giftBuilder = GiftStruct.newBuilder();
var userBuilder = User.newBuilder();
giftBuilder.setId(giftId);
giftBuilder.setName(giftName);
giftBuilder.setImage(Image.newBuilder().addUrlList(giftImage).build());
userBuilder.setId(userId);
builder.setGiftId(giftId);
builder.setUser(userBuilder);
builder.setSendType(sendType);
builder.setGift(giftBuilder);
return builder.build();
}
}

View File

@@ -41,7 +41,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@@ -1,8 +1,9 @@
<div align="center" > <div align="center" >
<a target="blank" > <a target="blank" >
<img src="https://raw.githubusercontent.com/jwdeveloper/TikTokLiveJava/develop-1_0_0/Tools-ReadmeGenerator/src/main/resources/logo.svg" width="15%" > <img src="https://github.com/jwdeveloper/TikTokLiveJava/assets/79764581/1f9951b4-a270-4535-bf38-a6f41cdf8f43" width="15%" >
</img> </img>
</a> </a>
</div> </div>
<div align="center" > <div align="center" >
<h1>TikTok Live Java</h1> <h1>TikTok Live Java</h1>
@@ -16,6 +17,7 @@
</a> </a>
<a href="https://discord.gg/e2XwPNTBBr" target="blank" > <a href="https://discord.gg/e2XwPNTBBr" target="blank" >
<img src="https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white" > <img src="https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white" >
</img> </img>
@@ -28,11 +30,18 @@
</div> </div>
</div> </div>
# Introduction # Introduction
A Java library inspired by [TikTokLive](https://github.com/isaackogan/TikTokLive) and [TikTokLiveSharp](https://github.com/sebheron/TikTokLiveSharp). Use it to receive live stream events such as comments and gifts in realtime from [TikTok LIVE](https://www.tiktok.com/live) by connecting to TikTok's internal WebCast push service. A Java library inspired by [TikTokLive](https://github.com/isaackogan/TikTokLive) and [TikTokLiveSharp](https://github.com/sebheron/TikTokLiveSharp). Use it to receive live stream events such as comments and gifts in realtime from [TikTok LIVE](https://www.tiktok.com/live) by connecting to TikTok's internal WebCast push service.
The library includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers. The library includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers.
No credentials are required. Events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked. No credentials are required. Events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked.
<div align="center">
<a href="https://www.youtube.com/watch?v=eerWGgUKc6c" align="right" target="blank"><img src="https://img.youtube.com/vi/eerWGgUKc6c/hqdefault.jpg" alt="IMAGE ALT TEXT" width="38%" align="right"></a>
</div>
Join the support [discord](https://discord.gg/e2XwPNTBBr) and visit the `#java-support` channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc Join the support [discord](https://discord.gg/e2XwPNTBBr) and visit the `#java-support` channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc
Do you prefer other programming languages? Do you prefer other programming languages?
@@ -43,12 +52,19 @@ Do you prefer other programming languages?
**NOTE:** This is not an official API. It's a reverse engineering project. **NOTE:** This is not an official API. It's a reverse engineering project.
#### Overview #### Overview
- [Getting started](#getting-started) - [Getting started](#getting-started)
- [Events](#events) - [Events](#events)
- [Listeners](#listeners) - [Listeners](#listeners)
- [Contributing](#contributing) - [Contributing](#contributing)
## Getting started ## Getting started
1. Install the package via Maven 1. Install the package via Maven
@@ -65,7 +81,7 @@ Do you prefer other programming languages?
<dependency> <dependency>
<groupId>com.github.jwdeveloper.TikTok-Live-Java</groupId> <groupId>com.github.jwdeveloper.TikTok-Live-Java</groupId>
<artifactId>Client</artifactId> <artifactId>Client</artifactId>
<version>NOT_FOUND</version> <version>1.0.0-Release</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>Tools-EventsWebViewer</artifactId> <artifactId>Tools-EventsWebViewer</artifactId>

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@@ -33,6 +33,10 @@ A Java library inspired by [TikTokLive](https://github.com/isaackogan/TikTokLive
The library includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers. The library includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers.
No credentials are required. Events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked. No credentials are required. Events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked.
<div align="center">
<a href="https://www.youtube.com/watch?v=eerWGgUKc6c" align="right" target="blank"><img src="https://img.youtube.com/vi/eerWGgUKc6c/hqdefault.jpg" alt="IMAGE ALT TEXT" width="38%" align="right"></a>
</div>
Join the support [discord](https://discord.gg/e2XwPNTBBr) and visit the `#java-support` channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc Join the support [discord](https://discord.gg/e2XwPNTBBr) and visit the `#java-support` channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc
Do you prefer other programming languages? Do you prefer other programming languages?

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@@ -22,6 +22,7 @@
<artifactId>javapoet</artifactId> <artifactId>javapoet</artifactId>
<version>1.13.0</version> <version>1.13.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.reflections</groupId> <groupId>org.reflections</groupId>
<artifactId>reflections</artifactId> <artifactId>reflections</artifactId>

View File

@@ -44,6 +44,10 @@ public class GenerateGiftsEnum {
var downloader = new GiftsDownloader(); var downloader = new GiftsDownloader();
var gifts = downloader.getGiftsFromFile(); var gifts = downloader.getGiftsFromFile();
for(var link : gifts)
{
System.out.println(link.getImage());
}
var groupedByName = gifts.stream().collect(Collectors.groupingBy(GiftDto::getName)); var groupedByName = gifts.stream().collect(Collectors.groupingBy(GiftDto::getName));
System.out.println("Total gifts" + gifts.size()); System.out.println("Total gifts" + gifts.size());
var result = generate(groupedByName); var result = generate(groupedByName);
@@ -66,11 +70,11 @@ public class GenerateGiftsEnum {
.addParameter(int.class, "id") .addParameter(int.class, "id")
.addParameter(String.class, "name") .addParameter(String.class, "name")
.addParameter(int.class, "diamondCost") .addParameter(int.class, "diamondCost")
.addParameter(Picture.class, "picture") .addParameter(String.class, "pictureLink")
.addStatement("this.id = id") .addStatement("this.id = id")
.addStatement("this.name = name") .addStatement("this.name = name")
.addStatement("this.diamondCost = diamondCost") .addStatement("this.diamondCost = diamondCost")
.addStatement("this.picture = picture") .addStatement("this.picture = new Picture(pictureLink)")
.build(); .build();
var inRangeMethod = MethodSpec.methodBuilder("hasDiamondCostRange") var inRangeMethod = MethodSpec.methodBuilder("hasDiamondCostRange")
@@ -91,7 +95,7 @@ public class GenerateGiftsEnum {
enumBuilder.addMethod(constructor); enumBuilder.addMethod(constructor);
enumBuilder.addEnumConstant("UNDEFINED", addGift(-1, "undefined", -1, new Picture(""))); enumBuilder.addEnumConstant("UNDEFINED", addGift(-1, "undefined", -1, ""));
for (var giftInfo : giftInfoMap.entrySet()) { for (var giftInfo : giftInfoMap.entrySet()) {
@@ -117,16 +121,13 @@ public class GenerateGiftsEnum {
if (contier > 1) { if (contier > 1) {
enumName += "_" + value.getId(); enumName += "_" + value.getId();
} }
enumBuilder.addEnumConstant(enumName, addGift(value.getId(), value.getName(), value.getDiamondCost(), new Picture(value.getImage()))); enumBuilder.addEnumConstant(enumName, addGift(value.getId(), value.getName(), value.getDiamondCost(), value.getImage()));
contier++; contier++;
} }
} }
onEnums(enumBuilder); var output = JavaFile.builder("io.github.jwdeveloper.tiktok.data.models.gifts", enumBuilder.build());
var output = JavaFile.builder("io.github.jwdeveloper.tiktok.events.objects", enumBuilder.build());
output.addFileComment("This enum is generated"); output.addFileComment("This enum is generated");
return output.build(); return output.build();
} }
@@ -140,22 +141,14 @@ public class GenerateGiftsEnum {
} }
} }
public static void onEnums(TypeSpec.Builder builder) { public static TypeSpec addGift(int id, String name, int diamond, String picture)
// builder.addEnumConstant("RUGBY_BALL", addGift(6249, "Rugby Ball", 10));
// builder.addEnumConstant("I_LOVE_YOU", addGift(5779, "I Love you", 10));
// builder.addEnumConstant("BOUQUET_FLOWER", addGift(5780, "Bouquet Flower", 30));
}
public static TypeSpec addGift(int id, String name, int diamont, Picture picture)
{ {
var pictureValue = "new Picture(\""+picture.getLink()+"\")";
return TypeSpec.anonymousClassBuilder( return TypeSpec.anonymousClassBuilder(
"$L, $S, $L, $S", "$L, $S, $L, $S",
id, id,
name, name,
diamont, diamond,
pictureValue) picture)
.build(); .build();
} }

View File

@@ -38,7 +38,11 @@ import java.util.TreeMap;
public class GiftsDownloader { public class GiftsDownloader {
public static void main(String[] run) { public static void main(String[] run) {
new GiftsDownloader().getGifts(); var gifts = new GiftsDownloader().getGifts();
for(var gift : gifts)
{
System.out.println(gift.toString());
}
} }
public List<GiftDto> getGiftsFromFile() { public List<GiftDto> getGiftsFromFile() {

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@
"id": 5269, "id": 5269,
"name": "TikTok", "name": "TikTok",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/802a21ae29f9fae5abe3693de9f874bd~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/50f/50f8e7cf26128a6e10d0b792019c1303/94aa2d574cfe6e3893c087cfb5a5efcd.png"
}, },
"5283": { "5283": {
"id": 5283, "id": 5283,
@@ -237,13 +237,13 @@
"id": 5479, "id": 5479,
"name": "Coffee", "name": "Coffee",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/02492214b9bd50fee2d69fd0d089c025.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/c01/c01ca7de81469018ef06e3b0e09a2814/04bb6e747afdb5334e8c29074e24f474.webp"
}, },
"5480": { "5480": {
"id": 5480, "id": 5480,
"name": "Heart", "name": "Heart",
"diamondCost": 10, "diamondCost": 10,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/98bea1b189fba75bf0ca766b4dc1976e.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/b7a/b7ae3af2d67d7b7708a69d765531712a/7a382fcc2e03076c9e4b089176de1395.webp"
}, },
"5481": { "5481": {
"id": 5481, "id": 5481,
@@ -255,13 +255,13 @@
"id": 5482, "id": 5482,
"name": "Shiba Inu", "name": "Shiba Inu",
"diamondCost": 222, "diamondCost": 222,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/ddbcee02f5b86b803b0ec34357cd82ec.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a7e/a7ea6aebc44c52508dcbd85d8061af25/30b933d7c271571931f4e0d6788fd459.webp"
}, },
"5483": { "5483": {
"id": 5483, "id": 5483,
"name": "Unicorn Fantasy", "name": "Unicorn Fantasy",
"diamondCost": 5000, "diamondCost": 5000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/483c644e67e9bb1dd5970f2df00b7576.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/127/12778ef1e111b6342b11f778833bb346/ac4f70c4095012c8579e9cabef98e848.webp"
}, },
"5485": { "5485": {
"id": 5485, "id": 5485,
@@ -279,7 +279,7 @@
"id": 5487, "id": 5487,
"name": "Finger Heart", "name": "Finger Heart",
"diamondCost": 5, "diamondCost": 5,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a4c4dc437fd3a6632aba149769491f49.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/688/688f0c350f9cd9751cb02659f4ab105e/2b2d66c2f9767fc8332ee1b5ba0c1057.png"
}, },
"5488": { "5488": {
"id": 5488, "id": 5488,
@@ -333,7 +333,7 @@
"id": 5509, "id": 5509,
"name": "Sunglasses", "name": "Sunglasses",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/08af67ab13a8053269bf539fd27f3873.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/919/9191409989dbc6bb4808ce18f8d0d0d7/bc837a05add0cf0f37e946d605df1a54.png"
}, },
"5511": { "5511": {
"id": 5511, "id": 5511,
@@ -483,19 +483,19 @@
"id": 5585, "id": 5585,
"name": "Confetti", "name": "Confetti",
"diamondCost": 100, "diamondCost": 100,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/cb4e11b3834e149f08e1cdcc93870b26~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/364/3640905e132905eb2b0ff64a068db337/fcb80819257fb17f881eeb85b3a0b0d2.png"
}, },
"5586": { "5586": {
"id": 5586, "id": 5586,
"name": "Hearts", "name": "Hearts",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/934b5a10dee8376df5870a61d2ea5cb6.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/f28/f2886812bc78d33eab9d70e86b665753/b97d8bfa0bc6d960cad3bfcf5716be12.png"
}, },
"5587": { "5587": {
"id": 5587, "id": 5587,
"name": "Gold Mine", "name": "Gold Mine",
"diamondCost": 1000, "diamondCost": 1000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/58cbff1bd592ae4365a450c4bf767f3a.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/d76/d766ebb3d04903c05a2f2d5883fd1cd7/7c99a5f7fed51db01ce85151e55e313e.png"
}, },
"5588": { "5588": {
"id": 5588, "id": 5588,
@@ -597,19 +597,19 @@
"id": 5651, "id": 5651,
"name": "Garland ", "name": "Garland ",
"diamondCost": 1500, "diamondCost": 1500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/69d7dadcd93942bad49d0b9874f69c1b~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/2b7/2b715453ba05fa402edba017ac0c11a0/b31ad3573f6b4fe41e89e16f2615606d.png"
}, },
"5652": { "5652": {
"id": 5652, "id": 5652,
"name": "Ferris Wheel", "name": "Ferris Wheel",
"diamondCost": 3000, "diamondCost": 3000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/3c7291ad4c2a6d4f70505c3e296ecebe~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/210/21071962989420fb8d118a8d84684707/837718d3a337816f89652d44ef970a90.png"
}, },
"5655": { "5655": {
"id": 5655, "id": 5655,
"name": "Rose", "name": "Rose",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/eba3a9bb85c33e017f3648eaf88d7189~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/f59/f5902abbd13178017285a308606fd0dd/cf6a40558018965a8171cf5a575dd9de.png"
}, },
"5657": { "5657": {
"id": 5657, "id": 5657,
@@ -621,19 +621,19 @@
"id": 5658, "id": 5658,
"name": "Perfume", "name": "Perfume",
"diamondCost": 20, "diamondCost": 20,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/20b8f61246c7b6032777bb81bf4ee055~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/8af/8af143c49ed92f431b6312185ea03b0a/cd5792b709a7f56cbb2b6669a0e13c29.png"
}, },
"5659": { "5659": {
"id": 5659, "id": 5659,
"name": "Paper Crane", "name": "Paper Crane",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/0f158a08f7886189cdabf496e8a07c21~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/6a0/6a0b418bc4ae8f04be3194c88389e9e7/bf071c7cc84cf3aac6435adbd222f577.png"
}, },
"5660": { "5660": {
"id": 5660, "id": 5660,
"name": "Hand Hearts", "name": "Hand Hearts",
"diamondCost": 100, "diamondCost": 100,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/6cd022271dc4669d182cad856384870f~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/9ae/9aed27eb6e8cea1b14e14c2e15eb7308/4ccd4fad65bab7a9b8f9c66a321476b2.png"
}, },
"5661": { "5661": {
"id": 5661, "id": 5661,
@@ -735,7 +735,7 @@
"id": 5731, "id": 5731,
"name": "Coral", "name": "Coral",
"diamondCost": 499, "diamondCost": 499,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/d4faa402c32bf4f92bee654b2663d9f1~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/cbe/cbe961d32956be86339a542b76faed88/cd807cda047c9eaf69c24162916ff1fd.png"
}, },
"5732": { "5732": {
"id": 5732, "id": 5732,
@@ -861,13 +861,13 @@
"id": 5765, "id": 5765,
"name": "Motorcycle", "name": "Motorcycle",
"diamondCost": 2988, "diamondCost": 2988,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/6517b8f2f76dc75ff0f4f73107f8780e~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/322/3226dd779addd06444ec9326eb25eb7c/0c6f14d291823969c916aa782c842d9a.png"
}, },
"5767": { "5767": {
"id": 5767, "id": 5767,
"name": "Private Jet", "name": "Private Jet",
"diamondCost": 4888, "diamondCost": 4888,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/921c6084acaa2339792052058cbd3fd3~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a24/a246b6f08242ef1084e43708fcd4f4df/8bbe338da8052146506e3a802a3cd0d8.png"
}, },
"5774": { "5774": {
"id": 5774, "id": 5774,
@@ -999,7 +999,7 @@
"id": 5827, "id": 5827,
"name": "Ice Cream Cone", "name": "Ice Cream Cone",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/968820bc85e274713c795a6aef3f7c67~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/1a1/1a13988014fd9fb5990b3060beb2151d/71ba7d4c6eeaef46e5cc11fbf36ba3fa.png"
}, },
"5830": { "5830": {
"id": 5830, "id": 5830,
@@ -1107,13 +1107,13 @@
"id": 5879, "id": 5879,
"name": "Doughnut", "name": "Doughnut",
"diamondCost": 30, "diamondCost": 30,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/4e7ad6bdf0a1d860c538f38026d4e812~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/ae6/ae65a581d82f828e9e3834cd8444986a/9a1acf1d35f2cbef7a4c3929f9587567.png"
}, },
"5880": { "5880": {
"id": 5880, "id": 5880,
"name": "Lock and Key", "name": "Lock and Key",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/2c9cec686b98281f7319b1a02ba2864a~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/daf/daf918a2e001ce161e116e5c3a2a4cfb/f673b5dfc3bba9a9529425a4fa9e446f.png"
}, },
"5882": { "5882": {
"id": 5882, "id": 5882,
@@ -1161,7 +1161,7 @@
"id": 5897, "id": 5897,
"name": "Swan", "name": "Swan",
"diamondCost": 699, "diamondCost": 699,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/97a26919dbf6afe262c97e22a83f4bf1~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/bd1/bd1d065774ce50e2c0331dba965d1ac4/a423a5b7b80743d36b8960e79421060c.png"
}, },
"5899": { "5899": {
"id": 5899, "id": 5899,
@@ -1269,7 +1269,7 @@
"id": 5938, "id": 5938,
"name": "Pool Party", "name": "Pool Party",
"diamondCost": 4999, "diamondCost": 4999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/4147c5bcfad9623c693f83d5d6cba1f7~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a27/a27e6730390e890198ebc0f3a2a6d68b/df71cae96fb8a3e616931c7c48a2574c.png"
}, },
"5950": { "5950": {
"id": 5950, "id": 5950,
@@ -1293,7 +1293,7 @@
"id": 5955, "id": 5955,
"name": "Champion", "name": "Champion",
"diamondCost": 1500, "diamondCost": 1500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/58ce827091411e667dd6ba8a93215f86~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/3c9/3c95aee9d94798b88b7132c0f1f006e3/60a55983aa3cf0b2c30de3b30aedcbea.png"
}, },
"5956": { "5956": {
"id": 5956, "id": 5956,
@@ -1359,7 +1359,7 @@
"id": 5978, "id": 5978,
"name": "Train", "name": "Train",
"diamondCost": 899, "diamondCost": 899,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/4227ed71f2c494b554f9cbe2147d4899~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/17d/17dfaee8b85e1b972f86b080729b4126/73c36a574fa91b8b44e1ff63ba130e93.png"
}, },
"5983": { "5983": {
"id": 5983, "id": 5983,
@@ -1431,7 +1431,7 @@
"id": 6007, "id": 6007,
"name": "Boxing Gloves", "name": "Boxing Gloves",
"diamondCost": 299, "diamondCost": 299,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/9f8bd92363c400c284179f6719b6ba9c~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/e4a/e4ac69d94221b6157d4381b779b0c7a5/2fbb331b9697c6515c9bb1a4487153a6.png"
}, },
"6008": { "6008": {
"id": 6008, "id": 6008,
@@ -1455,7 +1455,7 @@
"id": 6033, "id": 6033,
"name": "Make-up Box", "name": "Make-up Box",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a29aa87203ec09c699e3dafa1944b23e~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/006/006d256121db1824975ae0f9f8a0fd1d/775b702c6935f6b7fc82fca6221d65b0.png"
}, },
"6034": { "6034": {
"id": 6034, "id": 6034,
@@ -1545,7 +1545,7 @@
"id": 6064, "id": 6064,
"name": "GG", "name": "GG",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/3f02fa9594bd1495ff4e8aa5ae265eef~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/232/232e2afc8e6c022c5c78df18cf196663/f2ba6300ef54121763648a60d465eef5.png"
}, },
"6070": { "6070": {
"id": 6070, "id": 6070,
@@ -1587,13 +1587,13 @@
"id": 6089, "id": 6089,
"name": "Sports Car", "name": "Sports Car",
"diamondCost": 7000, "diamondCost": 7000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/e7ce188da898772f18aaffe49a7bd7db~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/b61/b610a9669c8a833dfcc1d24c6ffef32a/a4fdb6b0c3a2efc75e09a0923976dd77.png"
}, },
"6090": { "6090": {
"id": 6090, "id": 6090,
"name": "Fireworks", "name": "Fireworks",
"diamondCost": 1088, "diamondCost": 1088,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/9494c8a0bc5c03521ef65368e59cc2b8~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/eeb/eebfef5c217a749cf9a997d187a17d67/e1e443ee1532c9f04922acf770f04edb.png"
}, },
"6093": { "6093": {
"id": 6093, "id": 6093,
@@ -1611,7 +1611,7 @@
"id": 6097, "id": 6097,
"name": "Little Crown", "name": "Little Crown",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/cf3db11b94a975417043b53401d0afe1~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/50d/50df20e691bbeeeb1c2faf03c2c86243/2b412c3b322b27cd9836bbe636ea2a1d.png"
}, },
"6101": { "6101": {
"id": 6101, "id": 6101,
@@ -1635,7 +1635,7 @@
"id": 6104, "id": 6104,
"name": "Cap", "name": "Cap",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/6c2ab2da19249ea570a2ece5e3377f04~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/349/349b158378b1b0f0fa447869c8f2e690/7a65e6037be114fa888bf04177a62f6a.png"
}, },
"6105": { "6105": {
"id": 6105, "id": 6105,
@@ -1761,13 +1761,13 @@
"id": 6148, "id": 6148,
"name": "Flower Overflow", "name": "Flower Overflow",
"diamondCost": 4000, "diamondCost": 4000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/743c4bb44e7e0bf251a7f2f5ada231ee~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/891/891bc5302f00b006c23975bc80357be2/3b1bfc1ba027d7839fe822a7e51d2833.png"
}, },
"6149": { "6149": {
"id": 6149, "id": 6149,
"name": "Interstellar", "name": "Interstellar",
"diamondCost": 10000, "diamondCost": 10000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/8520d47b59c202a4534c1560a355ae06~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/4e3/4e341b08230703a6f09ba3234c3fe717/3854ed8e881ebbe5208882602b30cf88.png"
}, },
"6169": { "6169": {
"id": 6169, "id": 6169,
@@ -1803,13 +1803,13 @@
"id": 6199, "id": 6199,
"name": "Email Message", "name": "Email Message",
"diamondCost": 1000, "diamondCost": 1000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/c959df6dbffd6f07849d22d2c3c07861~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/dc2/dc21bd6120598b10e5146c713249059e/4eb90329ca1344ccc1f88105ff0dafcf.png"
}, },
"6200": { "6200": {
"id": 6200, "id": 6200,
"name": "Mirror Bloom", "name": "Mirror Bloom",
"diamondCost": 1000, "diamondCost": 1000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a9d0e9406230fa9a901d992a90574e39~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a68/a681c2ef079138e0e51cac719a2ec2b6/40f50e2272250dd118389987d09ab80b.png"
}, },
"6202": { "6202": {
"id": 6202, "id": 6202,
@@ -1821,7 +1821,7 @@
"id": 6203, "id": 6203,
"name": "Sunset Speedway", "name": "Sunset Speedway",
"diamondCost": 10000, "diamondCost": 10000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/df63eee488dc0994f6f5cb2e65f2ae49~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/088/088e035c1766dc6d511735c97288eb74/855c619602420fe4f34eefe1ec809de6.png"
}, },
"6204": { "6204": {
"id": 6204, "id": 6204,
@@ -1845,7 +1845,7 @@
"id": 6233, "id": 6233,
"name": "Travel with You", "name": "Travel with You",
"diamondCost": 999, "diamondCost": 999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/753098e5a8f45afa965b73616c04cf89~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/5f1/5f15bb4166a3be380c71682d27b1e38f/ad2519381f60bb3e2c6b603ed4baff24.png"
}, },
"6240": { "6240": {
"id": 6240, "id": 6240,
@@ -1869,13 +1869,13 @@
"id": 6246, "id": 6246,
"name": "Thumbs Up", "name": "Thumbs Up",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/570a663e27bdc460e05556fd1596771a~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/267/2675b04a24fc0d674ca25874493769c4/49252fd7c65b99a3acf3e2ee18af2d67.png"
}, },
"6247": { "6247": {
"id": 6247, "id": 6247,
"name": "Heart", "name": "Heart",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/dd300fd35a757d751301fba862a258f1~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/21d/21de8189873fc8550b8f19501effab4f/0be54b4cf3e40c52fca6be3f71220d69.png"
}, },
"6248": { "6248": {
"id": 6248, "id": 6248,
@@ -1899,13 +1899,13 @@
"id": 6265, "id": 6265,
"name": "Duck", "name": "Duck",
"diamondCost": 299, "diamondCost": 299,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/e172f660a1d4f95813a3ace0fde42323~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/7cc/7ccb5acba5bb4359f402941267f3d88e/1032cb33afecc207c136dcd2cf0bbea1.png"
}, },
"6267": { "6267": {
"id": 6267, "id": 6267,
"name": "Corgi", "name": "Corgi",
"diamondCost": 299, "diamondCost": 299,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/148eef0884fdb12058d1c6897d1e02b9~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/5ad/5ada6717da571d87542b081113bddaa6/2fe60d73a96b698efc61a1a434b4f3ed.png"
}, },
"6269": { "6269": {
"id": 6269, "id": 6269,
@@ -1995,7 +1995,7 @@
"id": 6348, "id": 6348,
"name": "Rabbit", "name": "Rabbit",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/61b42d630091b661e82fc8ed400b1de2~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/151/151aef30aabf8be77064d93b4c947876/1a732f3990c54ac993ebe0d9a0316ac6.png"
}, },
"6350": { "6350": {
"id": 6350, "id": 6350,
@@ -2021,11 +2021,17 @@
"diamondCost": 500, "diamondCost": 500,
"image": "https://storage.streamdps.com/iblock/25f/25f030f47cfc60d296bb1041ddb91f6e/ca3357a76a2be178c581530009ce215a.png" "image": "https://storage.streamdps.com/iblock/25f/25f030f47cfc60d296bb1041ddb91f6e/ca3357a76a2be178c581530009ce215a.png"
}, },
"6367": {
"id": 6367,
"name": "Falcon",
"diamondCost": 10999,
"image": "https://storage.streamdps.com/iblock/f88/f886e7678bef35f8c762a323386e6d23/7249e0af64c78d1d569a8d7a86ab58cd.png"
},
"6369": { "6369": {
"id": 6369, "id": 6369,
"name": "Lion", "name": "Lion",
"diamondCost": 29999, "diamondCost": 29999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/4fb89af2082a290b37d704e20f4fe729~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/0c4/0c446fb276fafbb0f0d5e3abfedf2510/f4bbea9d03b1453bd37d571282334f1b.png"
}, },
"6381": { "6381": {
"id": 6381, "id": 6381,
@@ -2099,11 +2105,17 @@
"diamondCost": 5, "diamondCost": 5,
"image": "https://storage.streamdps.com/iblock/ce5/ce57f012363358333397b6c72704b466/aa71c1c351b698c09a151a434bfd2652.png" "image": "https://storage.streamdps.com/iblock/ce5/ce57f012363358333397b6c72704b466/aa71c1c351b698c09a151a434bfd2652.png"
}, },
"6417": {
"id": 6417,
"name": "Club",
"diamondCost": 2000,
"image": "https://storage.streamdps.com/iblock/49b/49be18ae5914346ffcaf15a519ba9c1c/41326cb23d22010f0c4a8edf5bd27615.webp"
},
"6427": { "6427": {
"id": 6427, "id": 6427,
"name": "Hat and Mustache", "name": "Hat and Mustache",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/2f1e4f3f5c728ffbfa35705b480fdc92~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/2d8/2d8065490de12823e64617fe407c138b/b5ba8728531da2e0e52e23b9479c246a.png"
}, },
"6428": { "6428": {
"id": 6428, "id": 6428,
@@ -2127,7 +2139,7 @@
"id": 6432, "id": 6432,
"name": "Star", "name": "Star",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/485175fda92f4d2f862e915cbcf8f5c4~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/cc9/cc9317321e70cc776adc68bd3e0e66e7/4f3082259def021d1a2ed29e77a77713.png"
}, },
"6433": { "6433": {
"id": 6433, "id": 6433,
@@ -2151,7 +2163,7 @@
"id": 6437, "id": 6437,
"name": "Garland Headpiece", "name": "Garland Headpiece",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/bdbdd8aeb2b69c173a3ef666e63310f3~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/c42/c42c09a6f9075eca708111ea59a33ebd/c097bdc90a3bff337a25f6c53aa1aee5.png"
}, },
"6443": { "6443": {
"id": 6443, "id": 6443,
@@ -2415,7 +2427,7 @@
"id": 6563, "id": 6563,
"name": "Meteor Shower", "name": "Meteor Shower",
"diamondCost": 3000, "diamondCost": 3000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/71883933511237f7eaa1bf8cd12ed575~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/484/484359bdcbb83121575fcbce75e6d9c0/5d501b2acc4a12ca9fe685b0cf6fcaba.png"
}, },
"6564": { "6564": {
"id": 6564, "id": 6564,
@@ -2547,7 +2559,7 @@
"id": 6646, "id": 6646,
"name": "Leon the Kitten", "name": "Leon the Kitten",
"diamondCost": 4888, "diamondCost": 4888,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a7748baba012c9e2d98a30dce7cc5a27~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/6db/6dbac11d1406b04bd70ef473fac91fb6/42a0a84bd8a818dbe2c98d84233f12fb.png"
}, },
"6649": { "6649": {
"id": 6649, "id": 6649,
@@ -2589,7 +2601,7 @@
"id": 6671, "id": 6671,
"name": "Love You", "name": "Love You",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/134e51c00f46e01976399883ca4e4798~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/e7a/e7a3ea587e77f417c83596ad2a729f4e/fc521ab0494eb35cef33fde0c2b51555.webp"
}, },
"6687": { "6687": {
"id": 6687, "id": 6687,
@@ -2631,7 +2643,7 @@
"id": 6713, "id": 6713,
"name": "Cheer For You", "name": "Cheer For You",
"diamondCost": 199, "diamondCost": 199,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/1059dfa76c78dc17d7cf0a1fc2ece185~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/9ac/9aca1e40fff8679e8d37ef5c566fb872/15abbbe55a2269339a6b28e5c582fbfd.webp"
}, },
"6719": { "6719": {
"id": 6719, "id": 6719,
@@ -2691,7 +2703,7 @@
"id": 6751, "id": 6751,
"name": "TikTok Shuttle", "name": "TikTok Shuttle",
"diamondCost": 20000, "diamondCost": 20000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/8ef48feba8dd293a75ae9d4376fb17c9~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/88e/88e4853bd66a5e7dfb92ff4889ba8c52/179f7f3a339166b1f3369bb9d829905d.webp"
}, },
"6752": { "6752": {
"id": 6752, "id": 6752,
@@ -2739,13 +2751,13 @@
"id": 6781, "id": 6781,
"name": "Watermelon Love", "name": "Watermelon Love",
"diamondCost": 1000, "diamondCost": 1000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/1d1650cd9bb0e39d72a6e759525ffe59~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/44a/44a62f73bbaa2b0a6bd0a39d62f73033/e8775b631b23ed6756b9cdb4132ee85e.webp"
}, },
"6784": { "6784": {
"id": 6784, "id": 6784,
"name": "Cake Slice", "name": "Cake Slice",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/f681afb4be36d8a321eac741d387f1e2~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a1d/a1dfaa8ad7e0b7a164af7468971f8118/ad3a323fa40f3dd967e65049d2d0764f.webp"
}, },
"6787": { "6787": {
"id": 6787, "id": 6787,
@@ -2757,19 +2769,19 @@
"id": 6788, "id": 6788,
"name": "Glow Stick", "name": "Glow Stick",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/8e1a5d66370c5586545e358e37c10d25~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/751/751d663d0939f5d4a5178c32731a8c03/29d8d050f88ee2eb30b4099c86017d58.webp"
}, },
"6789": { "6789": {
"id": 6789, "id": 6789,
"name": "Red Carpet", "name": "Red Carpet",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/5b9bf90278f87b9ca0c286d3c8a12936~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/bf1/bf11d2786cbcce31a9ba2f95982921be/4229588ababc215c9fab76e953647c89.webp"
}, },
"6790": { "6790": {
"id": 6790, "id": 6790,
"name": "Celebration Time", "name": "Celebration Time",
"diamondCost": 6999, "diamondCost": 6999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/e73e786041d8218d8e9dbbc150855f1b~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/25e/25eb996989f2c9f66c3edcdfc6674049/42a32ced64d47b5bf8e7f57dd5b7a57f.webp"
}, },
"6793": { "6793": {
"id": 6793, "id": 6793,
@@ -2817,19 +2829,25 @@
"id": 6820, "id": 6820,
"name": "Whale diving", "name": "Whale diving",
"diamondCost": 2150, "diamondCost": 2150,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/46fa70966d8e931497f5289060f9a794~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/db2/db286be21ff2672b6e825a883c8c3e8f/ab9021773e219665f526cee02252f936.webp"
},
"6833": {
"id": 6833,
"name": "Castle Fantasy",
"diamondCost": 20000,
"image": "https://storage.streamdps.com/iblock/a08/a088a2975c7d4a68b8146a4c6b5c97c1/2729c82ccd54828bd950675e7491d71c.webp"
}, },
"6834": { "6834": {
"id": 6834, "id": 6834,
"name": "Gift Box", "name": "Gift Box",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/9cc22f7c8ac233e129dec7b981b91b76~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/daa/daa30e32902238fe45acd7ad97d93e67/f76b6dc0d74fa3dd7a0a3e7c703fae13.webp"
}, },
"6835": { "6835": {
"id": 6835, "id": 6835,
"name": "Gift Box", "name": "Gift Box",
"diamondCost": 3999, "diamondCost": 3999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/3646c259f8ce6f79c762ad00ce51dda0~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/fe3/fe3ea09799010f4185e3f862431db84b/951f010f281aea5b15e90d74b7e6306c.webp"
}, },
"6837": { "6837": {
"id": 6837, "id": 6837,
@@ -2919,7 +2937,7 @@
"id": 6862, "id": 6862,
"name": "Cooper Flies Home", "name": "Cooper Flies Home",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/3f1945b0d96e665a759f747e5e0cf7a9~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/778/7784f4e4b22c7acb8c90b9ccf4cfd71c/e3bb5fd549bc047912dda450fb714f84.webp"
}, },
"6863": { "6863": {
"id": 6863, "id": 6863,
@@ -2967,7 +2985,7 @@
"id": 6890, "id": 6890,
"name": "Love you", "name": "Love you",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/ab0a7b44bfc140923bb74164f6f880ab~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/0d9/0d984742e147a8bf2fd0f06b1421a825/c42e82a95ae799de0e860947971440ed.webp"
}, },
"6892": { "6892": {
"id": 6892, "id": 6892,
@@ -3251,6 +3269,12 @@
"diamondCost": 1, "diamondCost": 1,
"image": "https://storage.streamdps.com/iblock/341/341ed57767654fa7df9660988af5aa8c/b8ef51ac15bd2af523d9010fc0259d7f.webp" "image": "https://storage.streamdps.com/iblock/341/341ed57767654fa7df9660988af5aa8c/b8ef51ac15bd2af523d9010fc0259d7f.webp"
}, },
"7041": {
"id": 7041,
"name": "Arcade Game",
"diamondCost": 1200,
"image": "https://storage.streamdps.com/iblock/fd0/fd0785612b024900444a0a69083400ff/3181d6af50b05dd65a7ba75902bb5b94.webp"
},
"7048": { "7048": {
"id": 7048, "id": 7048,
"name": "I LOVE KR", "name": "I LOVE KR",
@@ -3435,31 +3459,31 @@
"id": 7121, "id": 7121,
"name": "Marvelous Confetti", "name": "Marvelous Confetti",
"diamondCost": 100, "diamondCost": 100,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/fccc851d351716bc8b34ec65786c727d~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a2e/a2e6e84d5786d5a4afb05d03cb76c519/cc8b527c9b83f76ee7fc314cc8cb80f6.webp"
}, },
"7122": { "7122": {
"id": 7122, "id": 7122,
"name": "Gem Gun", "name": "Gem Gun",
"diamondCost": 500, "diamondCost": 500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/dd06007ade737f1001977590b11d3f61~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/939/9393cb0608187667ef6d5e377f1c0d69/9b5cb58300a50651228e505b7714fdea.webp"
}, },
"7123": { "7123": {
"id": 7123, "id": 7123,
"name": "Shiny air balloon", "name": "Shiny air balloon",
"diamondCost": 1000, "diamondCost": 1000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/9e7ebdca64b8f90fcc284bb04ab92d24~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/bbf/bbf19d5a1bc2851cf5d7fea1b9fb0609/b636bdafd709c81fa041f72ffdf56645.webp"
}, },
"7124": { "7124": {
"id": 7124, "id": 7124,
"name": "Signature Jet", "name": "Signature Jet",
"diamondCost": 4888, "diamondCost": 4888,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/fe27eba54a50c0a687e3dc0f2c02067d~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/681/6816084aca12a2bb0da2cf05174322f5/928ee6f6bfe12d363c1bbc7f8b03e7e0.webp"
}, },
"7125": { "7125": {
"id": 7125, "id": 7125,
"name": "Premium Shuttle", "name": "Premium Shuttle",
"diamondCost": 20000, "diamondCost": 20000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/c2b287adee5151b7889d6e3d45b72e44~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/fc0/fc0bb0d7097635a7a91dd643f42a5258/cea9087fc79225ba647a6fa6bc60863c.webp"
}, },
"7131": { "7131": {
"id": 7131, "id": 7131,
@@ -3519,7 +3543,7 @@
"id": 7168, "id": 7168,
"name": "Money Gun", "name": "Money Gun",
"diamondCost": 500, "diamondCost": 500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/e0589e95a2b41970f0f30f6202f5fce6~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/248/248d3e4000124666d17b89889bf7468b/9c7aa57e3bd14e2ed6c1d8acd53b1970.webp"
}, },
"7171": { "7171": {
"id": 7171, "id": 7171,
@@ -3645,7 +3669,7 @@
"id": 7312, "id": 7312,
"name": "TikTok Universe+", "name": "TikTok Universe+",
"diamondCost": 34999, "diamondCost": 34999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/b13105782e8bf8fbefaa83b7af413cee~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/f23/f23b0f26a9b1cb931243bacfa5a3b7e4/17263e949df9e7e2f173e6eae68fd198.webp"
}, },
"7316": { "7316": {
"id": 7316, "id": 7316,
@@ -3657,7 +3681,7 @@
"id": 7319, "id": 7319,
"name": "Phoenix", "name": "Phoenix",
"diamondCost": 25999, "diamondCost": 25999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/ef248375c4167d70c1642731c732c982~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/7d2/7d238b81518ab1e340e06adeb88c7c1c/ca9c644b2653d8315db71237b6b955eb.webp"
}, },
"7341": { "7341": {
"id": 7341, "id": 7341,
@@ -3717,7 +3741,7 @@
"id": 7400, "id": 7400,
"name": "Adams Dream", "name": "Adams Dream",
"diamondCost": 25999, "diamondCost": 25999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/9a586391fbb1e21621c4203e5563a9e0~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/d10/d10e9c17cf198b2da7ae2ad13ffa6541/33b7de1f4f63e68ce8fa6d5693770042.webp"
}, },
"7403": { "7403": {
"id": 7403, "id": 7403,
@@ -3729,7 +3753,7 @@
"id": 7467, "id": 7467,
"name": "Chasing the Dream", "name": "Chasing the Dream",
"diamondCost": 1500, "diamondCost": 1500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/1ea8dbb805466c4ced19f29e9590040f~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/63a/63a21b726641e8bb50715bfe2e147d93/613bfe9574775d0c5b9be197cd96a745.webp"
}, },
"7468": { "7468": {
"id": 7468, "id": 7468,
@@ -3759,7 +3783,7 @@
"id": 7529, "id": 7529,
"name": "Mystery Firework", "name": "Mystery Firework",
"diamondCost": 1999, "diamondCost": 1999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/c110230c5db903db5f060a432f5a86cd~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a53/a53a028b290673abcdaa7858e5753a99/666cd8c2e66d6fb004ca64c8112af989.webp"
}, },
"7532": { "7532": {
"id": 7532, "id": 7532,
@@ -3803,6 +3827,12 @@
"diamondCost": 10, "diamondCost": 10,
"image": "https://storage.streamdps.com/iblock/b24/b24309d4ea6722875678e492ae12fb3f/864ac7928a78b43be2d1ee93915a53f5.webp" "image": "https://storage.streamdps.com/iblock/b24/b24309d4ea6722875678e492ae12fb3f/864ac7928a78b43be2d1ee93915a53f5.webp"
}, },
"7598": {
"id": 7598,
"name": "Pirates Ship",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/475/4753e54cae562b34edbf1a157cd60b21/722409ec69cfaf707d611b0987799296.webp"
},
"7604": { "7604": {
"id": 7604, "id": 7604,
"name": "2023", "name": "2023",
@@ -3813,7 +3843,7 @@
"id": 7610, "id": 7610,
"name": "Dragon Flame", "name": "Dragon Flame",
"diamondCost": 26999, "diamondCost": 26999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/89b4d1d93c1cc614e3a0903ac7a94e0c~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/544/544a04d819ce2c2a51624bd4cd01e70d/489f08c5dc7c27d0c1fc2a97d2f79b1d.webp"
}, },
"7624": { "7624": {
"id": 7624, "id": 7624,
@@ -3879,7 +3909,7 @@
"id": 7764, "id": 7764,
"name": "Star Throne", "name": "Star Throne",
"diamondCost": 7999, "diamondCost": 7999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/30063f6bc45aecc575c49ff3dbc33831~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/af5/af5b1fac4d7a0b540057460e0ab0730a/864a37b3f4a8ad6d2e174bfa6e2e4f32.webp"
}, },
"7780": { "7780": {
"id": 7780, "id": 7780,
@@ -3909,7 +3939,7 @@
"id": 7823, "id": 7823,
"name": "Leon and Lion", "name": "Leon and Lion",
"diamondCost": 34000, "diamondCost": 34000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a291aedacf27d22c3fd2d83575d2bee9~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a28/a28a82c70a624e448a96d3bebbfad3ea/833c0071d92604b5a544bf8f0ad72b68.webp"
}, },
"7824": { "7824": {
"id": 7824, "id": 7824,
@@ -3995,6 +4025,12 @@
"diamondCost": 1, "diamondCost": 1,
"image": "https://storage.streamdps.com/iblock/923/92341a47e85be94fb6a6699a6c430a93/d60527955f9597a43d339357fed6a5fc.webp" "image": "https://storage.streamdps.com/iblock/923/92341a47e85be94fb6a6699a6c430a93/d60527955f9597a43d339357fed6a5fc.webp"
}, },
"7911": {
"id": 7911,
"name": "Maggie",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/a12/a12a1b23f1f6a19d728de84e1f43e21d/ff288346e9855a9bb6deb4450491028f.webp"
},
"7927": { "7927": {
"id": 7927, "id": 7927,
"name": "Puppy Love", "name": "Puppy Love",
@@ -4017,7 +4053,7 @@
"id": 7934, "id": 7934,
"name": "Heart Me", "name": "Heart Me",
"diamondCost": 1, "diamondCost": 1,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/d56945782445b0b8c8658ed44f894c7b~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/13e/13e5b040286e1eb50502af4539441cce/f82b75d67c3e4553d278404babdf91e2.webp"
}, },
"7963": { "7963": {
"id": 7963, "id": 7963,
@@ -4043,6 +4079,12 @@
"diamondCost": 88, "diamondCost": 88,
"image": "https://storage.streamdps.com/iblock/e22/e2266686271c7a90ff04517f248c6f73/0459d679c01a5bfa5a4be1d61ec81ec8.webp" "image": "https://storage.streamdps.com/iblock/e22/e2266686271c7a90ff04517f248c6f73/0459d679c01a5bfa5a4be1d61ec81ec8.webp"
}, },
"7978": {
"id": 7978,
"name": "Leopard",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/eb4/eb4d116b15c03c2974b86fa400fa6a07/9a34b020e29f2d25f434387ae01b6386.webp"
},
"7984": { "7984": {
"id": 7984, "id": 7984,
"name": "Counting Sheep", "name": "Counting Sheep",
@@ -4137,7 +4179,7 @@
"id": 8130, "id": 8130,
"name": "Like-Pop", "name": "Like-Pop",
"diamondCost": 99, "diamondCost": 99,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/75eb7b4aca24eaa6e566b566c7d21e2f~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/272/2726ba4a1c7bbd0d4a483207b12d8f71/9c96b3106699eadcdf54c3e379418b99.webp"
}, },
"8152": { "8152": {
"id": 8152, "id": 8152,
@@ -4233,31 +4275,31 @@
"id": 8243, "id": 8243,
"name": "Cheer You Up", "name": "Cheer You Up",
"diamondCost": 9, "diamondCost": 9,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/97e0529ab9e5cbb60d95fc9ff1133ea6~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/788/788d5d3a74a511c5dad52353ffa00b14/bbc76c1cf6b20e20b2b4f149c04cb23d.webp"
}, },
"8244": { "8244": {
"id": 8244, "id": 8244,
"name": "Hands Up", "name": "Hands Up",
"diamondCost": 499, "diamondCost": 499,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/f4d906542408e6c87cf0a42f7426f0c6~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/e0f/e0f08e9e2d4ee388e6995b96c0ecdb11/c7e487b976e30be258208b2dcdbeabf8.webp"
}, },
"8245": { "8245": {
"id": 8245, "id": 8245,
"name": "Here We Go", "name": "Here We Go",
"diamondCost": 1799, "diamondCost": 1799,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/61b76a51a3757f0ff1cdc33b16c4d8ae~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/eb4/eb455b32af55203ea8eca269775cbe9e/9c39ed829f6bb4730b9fadc0d7dff5d3.webp"
}, },
"8247": { "8247": {
"id": 8247, "id": 8247,
"name": "Happy Party", "name": "Happy Party",
"diamondCost": 6999, "diamondCost": 6999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/41774a8ba83c59055e5f2946d51215b4~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/0f0/0f0bbac0fe85be28013b327a2e8c46e4/c1d7cbc8ea8493709416759f049b03be.webp"
}, },
"8248": { "8248": {
"id": 8248, "id": 8248,
"name": "Fly Love", "name": "Fly Love",
"diamondCost": 19999, "diamondCost": 19999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/a598ba4c7024f4d46c1268be4d82f901~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/729/729736d11c9014d99d088fa77da2bcea/d461d23ae2f3c5d2014f78a34c0b8956.webp"
}, },
"8259": { "8259": {
"id": 8259, "id": 8259,
@@ -4281,7 +4323,7 @@
"id": 8277, "id": 8277,
"name": "Love Drop", "name": "Love Drop",
"diamondCost": 1800, "diamondCost": 1800,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/1ea684b3104abb725491a509022f7c02~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/896/896832589053f394e9b14cac7992a0d1/df08b30c59ff13f1eec030d1e27a2a35.webp"
}, },
"8283": { "8283": {
"id": 8283, "id": 8283,
@@ -4347,13 +4389,19 @@
"id": 8381, "id": 8381,
"name": "Seal and Whale", "name": "Seal and Whale",
"diamondCost": 34500, "diamondCost": 34500,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/3781e9159ff09272826d3f2216ba36ef.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/7ea/7eaaad60ec567af6679b633b13d45d67/a4efc1be2a75340110072f2b6bba554b.webp"
},
"8387": {
"id": 8387,
"name": "peacock",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/f9f/f9f23f00af57e8fb8a421a2a7f24aacc/a5eb745418085f1be7692f577ff04b9c.webp"
}, },
"8391": { "8391": {
"id": 8391, "id": 8391,
"name": "Sam the Whale", "name": "Sam the Whale",
"diamondCost": 30000, "diamondCost": 30000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/f48a1887eb88238738996bb997b31c0f.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/3e6/3e6b7b154146a376da3ec918eace0bf6/682a9a304ddd18ad08702f15236f4293.webp"
}, },
"8392": { "8392": {
"id": 8392, "id": 8392,
@@ -4389,13 +4437,13 @@
"id": 8419, "id": 8419,
"name": "Red Lightning", "name": "Red Lightning",
"diamondCost": 12000, "diamondCost": 12000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/5f48599c8d2a7bbc6e6fcf11ba2c809f~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/12a/12ac7db3c837f029beee318c45e3ad88/da93190dd1082f876b4461ec0924e453.webp"
}, },
"8420": { "8420": {
"id": 8420, "id": 8420,
"name": "Star Throne", "name": "Star Throne",
"diamondCost": 7999, "diamondCost": 7999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/30063f6bc45aecc575c49ff3dbc33831~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/cb8/cb8068130463628181f0b84a4408e871/2495b97f5f4868e9e71612120c4eded5.webp"
}, },
"8433": { "8433": {
"id": 8433, "id": 8433,
@@ -4409,6 +4457,12 @@
"diamondCost": 88, "diamondCost": 88,
"image": "https://storage.streamdps.com/iblock/405/405fcf52a1de3d14ab9834c1f30cc330/0deed9ee2c79ba6bf2005b0ce667bf60.webp" "image": "https://storage.streamdps.com/iblock/405/405fcf52a1de3d14ab9834c1f30cc330/0deed9ee2c79ba6bf2005b0ce667bf60.webp"
}, },
"8435": {
"id": 8435,
"name": "Pyramids",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/bfc/bfcf491b940e478b6410047bc047af1b/abbbdd13015a9f31be1b905268873d73.webp"
},
"8448": { "8448": {
"id": 8448, "id": 8448,
"name": "Raccoon", "name": "Raccoon",
@@ -4421,6 +4475,12 @@
"diamondCost": 99, "diamondCost": 99,
"image": "https://storage.streamdps.com/iblock/a0f/a0ff283ce42ad27a03d6b8b98e81463b/9e5a49a9bae80f0afa30257d562cec8e.webp" "image": "https://storage.streamdps.com/iblock/a0f/a0ff283ce42ad27a03d6b8b98e81463b/9e5a49a9bae80f0afa30257d562cec8e.webp"
}, },
"8456": {
"id": 8456,
"name": "Zeus",
"diamondCost": 34000,
"image": "https://storage.streamdps.com/iblock/f4e/f4e74e07fff3d3b48143a5c56af7fec4/8b15ef2f342dcd2066bcdcf82e5f07e9.webp"
},
"8457": { "8457": {
"id": 8457, "id": 8457,
"name": "Zeus", "name": "Zeus",
@@ -4449,7 +4509,7 @@
"id": 8582, "id": 8582,
"name": "TikTok Stars", "name": "TikTok Stars",
"diamondCost": 39999, "diamondCost": 39999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/b1667c891ed39fd68ba7252fff7a1e7c~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/fb3/fb3c04af9d06b0cdf3df3da61f0c5705/b0f3fd913d2443626d8026eacef37a51.webp"
}, },
"8597": { "8597": {
"id": 8597, "id": 8597,
@@ -4457,12 +4517,24 @@
"diamondCost": 199, "diamondCost": 199,
"image": "https://storage.streamdps.com/iblock/50f/50f04937063753d6de255d2b5a080c1c/4f101c7c50ddbe8bd26a2ce5f8c16896.webp" "image": "https://storage.streamdps.com/iblock/50f/50f04937063753d6de255d2b5a080c1c/4f101c7c50ddbe8bd26a2ce5f8c16896.webp"
}, },
"8599": {
"id": 8599,
"name": "Convertible Car",
"diamondCost": 12000,
"image": "https://storage.streamdps.com/iblock/2cf/2cfc5af50894de318b81438a7e137710/060001e901992f5462c841b987876eeb.webp"
},
"8600": { "8600": {
"id": 8600, "id": 8600,
"name": "Sending positivity", "name": "Sending positivity",
"diamondCost": 199, "diamondCost": 199,
"image": "https://storage.streamdps.com/iblock/29b/29b0e9cb18e3479d17188235f8fdf480/58c6e916f44dcdda9d2f68dbdae77ddb.webp" "image": "https://storage.streamdps.com/iblock/29b/29b0e9cb18e3479d17188235f8fdf480/58c6e916f44dcdda9d2f68dbdae77ddb.webp"
}, },
"8602": {
"id": 8602,
"name": "Gorilla",
"diamondCost": 30000,
"image": "https://storage.streamdps.com/iblock/1e2/1e29b9d1a0263f1487498dc556cdcbc1/bec227242f8c9b258855071aa050ac17.webp"
},
"8604": { "8604": {
"id": 8604, "id": 8604,
"name": "Starfish Bay", "name": "Starfish Bay",
@@ -4485,7 +4557,7 @@
"id": 8651, "id": 8651,
"name": "Thunder Falcon", "name": "Thunder Falcon",
"diamondCost": 39999, "diamondCost": 39999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/26f3fbcda383e6093a19b8e7351a164c~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/b5d/b5dd904138691d16f6378e1f215fbc00/80a7b0ef77670cf6b7eb31fcae76fe80.webp"
}, },
"8672": { "8672": {
"id": 8672, "id": 8672,
@@ -4553,6 +4625,12 @@
"diamondCost": 2000, "diamondCost": 2000,
"image": "https://storage.streamdps.com/iblock/a29/a29903a975ce45f7b9939b510412fcee/051afc0510a7349a9ebfcde9e0fdec24.webp" "image": "https://storage.streamdps.com/iblock/a29/a29903a975ce45f7b9939b510412fcee/051afc0510a7349a9ebfcde9e0fdec24.webp"
}, },
"8814": {
"id": 8814,
"name": "Superhero fight",
"diamondCost": 30000,
"image": "https://storage.streamdps.com/iblock/d6b/d6b1c955153c8f8c5048d6c8f0d1b418/97d04b889e64328e9ab07224f6072b5f.webp"
},
"8815": { "8815": {
"id": 8815, "id": 8815,
"name": "Pink shoes", "name": "Pink shoes",
@@ -4605,25 +4683,25 @@
"id": 8912, "id": 8912,
"name": "Rosa Nebula", "name": "Rosa Nebula",
"diamondCost": 15000, "diamondCost": 15000,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/resource/f722088231103b66875dae33f13f8719.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/2d7/2d7dca6dc709e54b38336bedbd9eb06f/96de9ba917cf3f96bc15cb0f255b50c4.webp"
}, },
"8913": { "8913": {
"id": 8913, "id": 8913,
"name": "Rosa", "name": "Rosa",
"diamondCost": 10, "diamondCost": 10,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/eb77ead5c3abb6da6034d3cf6cfeb438~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/d75/d75e85cc034e46f992262e4791eebdb5/5bcd13609b96c3cea7d67a6f68b29a18.webp"
}, },
"8914": { "8914": {
"id": 8914, "id": 8914,
"name": "Forever Rosa", "name": "Forever Rosa",
"diamondCost": 399, "diamondCost": 399,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/resource/863e7947bc793f694acbe970d70440a1.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/a97/a97e8f4489fb62aefe7afd0137e6cdad/3ebbb3e1119ff1c3b7bc9b5ced47a4e0.webp"
}, },
"8916": { "8916": {
"id": 8916, "id": 8916,
"name": "Leon and Lili", "name": "Leon and Lili",
"diamondCost": 9699, "diamondCost": 9699,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/resource/6958244f3eeb69ce754f735b5833a4aa.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/00e/00e32385d86e71d5126a0f7de0d102a5/e50f83ab840e595bb5c7175f91d0e071.webp"
}, },
"8963": { "8963": {
"id": 8963, "id": 8963,
@@ -4653,7 +4731,7 @@
"id": 9072, "id": 9072,
"name": "TikTok Universe", "name": "TikTok Universe",
"diamondCost": 44999, "diamondCost": 44999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/8f471afbcebfda3841a6cc515e381f58~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/cb8/cb81dd4932de73d6c5874c05e93c511b/abb83322d4cb67b8ae6fc7ec15d4d426.webp"
}, },
"9081": { "9081": {
"id": 9081, "id": 9081,
@@ -4661,6 +4739,12 @@
"diamondCost": 1, "diamondCost": 1,
"image": "https://storage.streamdps.com/iblock/ff9/ff906a964a6ad9c4504438302d9354b8/3ee4796c239930c395afb3d7ef10295a.webp" "image": "https://storage.streamdps.com/iblock/ff9/ff906a964a6ad9c4504438302d9354b8/3ee4796c239930c395afb3d7ef10295a.webp"
}, },
"9086": {
"id": 9086,
"name": "Man V Seagull",
"diamondCost": 15000,
"image": "https://storage.streamdps.com/iblock/e5d/e5d95d519ee0ed7922de14f224a9504d/e80d8e840dd44cdf20de4c572c25e0f4.webp"
},
"9087": { "9087": {
"id": 9087, "id": 9087,
"name": "Flame heart", "name": "Flame heart",
@@ -4671,7 +4755,13 @@
"id": 9092, "id": 9092,
"name": "Fire Phoenix", "name": "Fire Phoenix",
"diamondCost": 41999, "diamondCost": 41999,
"image": "https://p16-webcast.tiktokcdn.com/img/maliva/webcast-va/resource/bfb8425a7e8fa03f9fec05a973a4a506.png~tplv-obj.jpg" "image": "https://storage.streamdps.com/iblock/13b/13bd6d3510e802831552d711c688c958/ffedd22a99c1eb2ac888974816c979cb.webp"
},
"9095": {
"id": 9095,
"name": "Birthday Party",
"diamondCost": 6999,
"image": "https://storage.streamdps.com/iblock/d0d/d0d1164a9ed81239b70cb25b93927023/d0dba293643c67dc33c1f4dda04e5b50.webp"
}, },
"9096": { "9096": {
"id": 9096, "id": 9096,
@@ -4708,5 +4798,23 @@
"name": "Pretzel", "name": "Pretzel",
"diamondCost": 1, "diamondCost": 1,
"image": "https://storage.streamdps.com/iblock/a67/a6797793eb382a99d38b2a0c37ec9b58/04ea1042707a361ad0f4668d0d759daa.webp" "image": "https://storage.streamdps.com/iblock/a67/a6797793eb382a99d38b2a0c37ec9b58/04ea1042707a361ad0f4668d0d759daa.webp"
},
"9184": {
"id": 9184,
"name": "Cube",
"diamondCost": 10,
"image": "https://storage.streamdps.com/iblock/69d/69dab4e352882c0bd29c3864e24d80de/258857221189c76260b6af5eeb43e93b.webp"
},
"9240": {
"id": 9240,
"name": "Dancing queens",
"diamondCost": 20000,
"image": "https://storage.streamdps.com/iblock/c79/c793af446369ecef5238e73312c84ccd/464a76f3e6eaee9afc771f45a4bba9df.webp"
},
"9255": {
"id": 9255,
"name": "Aerobic headband",
"diamondCost": 99,
"image": "https://storage.streamdps.com/iblock/3d9/3d98c2fbc96922da37a9d22881bb06b9/0a99af132ab8e3fe9806d2412abc6bf0.webp"
} }
} }

View File

@@ -7,7 +7,7 @@
<groupId>io.github.jwdeveloper.tiktok</groupId> <groupId>io.github.jwdeveloper.tiktok</groupId>
<artifactId>TikTokLiveJava</artifactId> <artifactId>TikTokLiveJava</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>0.0.25-Release</version> <version>1.0.0-Release</version>
<modules> <modules>
<module>API</module> <module>API</module>
<module>Client</module> <module>Client</module>