From 7a5abfcbcca8b70f6920b6595a2c99de8fa18910 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Sun, 21 Oct 2018 19:39:34 +0200 Subject: [PATCH] Add description and tags to MyFreeCamsModel --- .../ctbrec/sites/mfc/MyFreeCamsClient.java | 18 +++++++++++++++++- .../ctbrec/sites/mfc/MyFreeCamsModel.java | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java index 69a25c7e..88e3c2ab 100644 --- a/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java +++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java @@ -242,7 +242,23 @@ public class MyFreeCamsClient { } } } else if(object.has("type") && object.getInt("type") == 20) { - // TODO parseTags(); + JSONObject outer = object.getJSONObject("rdata"); + for (String uidString : outer.keySet()) { + try { + int uid = Integer.parseInt(uidString); + MyFreeCamsModel model = getModel(uid); + if(model != null) { + model.getTags().clear(); + JSONArray jsonTags = outer.getJSONArray(uidString); + jsonTags.forEach((tag) -> { + model.getTags().add((String) tag); + }); + } + } catch(Exception e) { + // fail silently + } + + } } } diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java index 358eacad..4447f70a 100644 --- a/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java +++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java @@ -2,9 +2,12 @@ package ctbrec.sites.mfc; import java.io.IOException; import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.concurrent.ExecutionException; import org.slf4j.Logger; @@ -174,6 +177,22 @@ public class MyFreeCamsModel extends AbstractModel { String hlsUrl = "http://video" + (camserv - 500) + ".myfreecams.com:1935/NxServer/ngrp:mfc_" + (100000000 + state.getUid()) + ".f4v_mobile/playlist.m3u8"; setStreamUrl(hlsUrl); } + + // tags + Optional.ofNullable(state.getM()).map((m) -> m.getTags()).ifPresent((tags) -> { + ArrayList t = new ArrayList<>(); + t.addAll(tags); + setTags(t); + }); + + // description + Optional.ofNullable(state.getM()).map((m) -> m.getTopic()).ifPresent((topic) -> { + try { + setDescription(URLDecoder.decode(topic, "utf-8")); + } catch (UnsupportedEncodingException e) { + LOG.warn("Couldn't url decode topic", e); + } + }); } @Override