@@ -66,7 +66,6 @@ public static LiveUserData.Response map(String json, Logger logger) {
6666
6767 roomInfo .setTitle (liveRoom .get ("title" ).getAsString ());
6868 roomInfo .setStartTime (liveRoom .get ("startTime" ).getAsLong ());
69- roomInfo .setTitle (liveRoom .get ("title" ).getAsString ());
7069 roomInfo .setViewersCount (liveRoom .getAsJsonObject ("liveRoomStats" ).get ("userCount" ).getAsInt ());
7170 roomInfo .setTotalViewersCount (liveRoom .getAsJsonObject ("liveRoomStats" ).get ("enterCount" ).getAsInt ());
7271 roomInfo .setAgeRestricted (jsonObject .get ("statusCode" ).getAsInt () == TikTokLiveHttpClient .TIKTOK_AGE_RESTRICTED_CODE );
@@ -92,9 +91,51 @@ public static LiveUserData.Response map(String json, Logger logger) {
9291 roomInfo .setHostName (foundUser .getName ());
9392
9493 return new LiveUserData .Response (json , statusEnum , roomInfo );
95- } catch (JsonSyntaxException | IllegalStateException e ) {
94+ } catch (JsonSyntaxException | IllegalStateException | NullPointerException e ) {
9695 logger .warning ("Malformed Json: '" +json +"' - Error Message: " +e .getMessage ());
9796 return new LiveUserData .Response (json , LiveUserData .UserStatus .NotFound , null );
9897 }
9998 }
99+
100+ public static LiveUserData .Response mapEulerstream (JsonObject jsonObject , Logger logger ) {
101+ try {
102+ JsonObject roomInfoJson = jsonObject .getAsJsonObject ("roomInfo" );
103+ JsonObject userJson = jsonObject .getAsJsonObject ("user" );
104+
105+ var roomId = roomInfoJson .get ("id" ).getAsString ();
106+ var status = roomInfoJson .get ("status" ).getAsInt ();
107+
108+ TikTokRoomInfo roomInfo = new TikTokRoomInfo ();
109+ roomInfo .setRoomId (roomId );
110+ roomInfo .setTitle (roomInfoJson .get ("title" ).getAsString ());
111+ roomInfo .setStartTime (roomInfoJson .get ("startTime" ).getAsLong ());
112+ roomInfo .setViewersCount (roomInfoJson .get ("currentViewers" ).getAsInt ());
113+ roomInfo .setTotalViewersCount (roomInfoJson .get ("totalViewers" ).getAsInt ());
114+
115+ var statusEnum = switch (status ) {
116+ case 2 -> LiveUserData .UserStatus .Live ;
117+ case 3 -> LiveUserData .UserStatus .LivePaused ;
118+ case 4 -> LiveUserData .UserStatus .Offline ;
119+ default -> LiveUserData .UserStatus .NotFound ;
120+ };
121+
122+ User foundUser = new User (
123+ Long .parseLong (userJson .get ("numericUid" ).getAsString ()),
124+ userJson .get ("uniqueId" ).getAsString (),
125+ userJson .get ("nickname" ).getAsString (),
126+ userJson .get ("signature" ).getAsString (),
127+ new Picture (userJson .get ("avatarUrl" ).getAsString ()),
128+ userJson .get ("following" ).getAsLong (),
129+ userJson .get ("followers" ).getAsLong (),
130+ List .of ());
131+
132+ roomInfo .setHost (foundUser );
133+ roomInfo .setHostName (foundUser .getName ());
134+
135+ return new LiveUserData .Response (jsonObject .toString (), statusEnum , roomInfo );
136+ } catch (JsonSyntaxException | IllegalStateException | NullPointerException e ) {
137+ logger .warning ("Malformed Json: '" +jsonObject .toString ()+"' - Error Message: " +e .getMessage ());
138+ return new LiveUserData .Response (jsonObject .toString (), LiveUserData .UserStatus .NotFound , null );
139+ }
140+ }
100141}
0 commit comments