Add description and tags to MyFreeCamsModel

This commit is contained in:
0xboobface 2018-10-21 19:39:34 +02:00
parent 8a3abd99af
commit 7a5abfcbcc
2 changed files with 36 additions and 1 deletions

View File

@ -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
}
}
}
}

View File

@ -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<String> 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