Implement live preview for MFC
This commit is contained in:
parent
5cb900fe55
commit
45c17cfaa4
|
@ -513,6 +513,7 @@ public class MyFreeCamsClient {
|
|||
if(Objects.equals(state.getNm(), model.getName())) {
|
||||
JsonAdapter<SessionState> adapter = moshi.adapter(SessionState.class).indent(" ");
|
||||
System.out.println(adapter.toJson(state));
|
||||
System.out.println(model.getPreview());
|
||||
System.out.println("#####################");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -216,6 +216,13 @@ public class MyFreeCamsModel extends AbstractModel {
|
|||
String uid = state.getUid().toString();
|
||||
String uidStart = uid.substring(0, 3);
|
||||
String previewUrl = "https://img.mfcimg.com/photos2/"+uidStart+'/'+uid+"/avatar.300x300.jpg";
|
||||
if(MyFreeCamsModel.this.state == State.ONLINE) {
|
||||
try {
|
||||
previewUrl = getLivePreviewUrl(state);
|
||||
} catch(Exception e) {
|
||||
LOG.debug("Couldn't get live preview. Falling back to avatar", e);
|
||||
}
|
||||
}
|
||||
setPreview(previewUrl);
|
||||
|
||||
// tags
|
||||
|
@ -237,6 +244,31 @@ public class MyFreeCamsModel extends AbstractModel {
|
|||
viewerCount = Optional.ofNullable(state.getM()).map((m) -> m.getRc()).orElseGet(() -> 0);
|
||||
}
|
||||
|
||||
private String getLivePreviewUrl(SessionState state) {
|
||||
String previewUrl;
|
||||
int userChannel = 100000000 + state.getUid();
|
||||
int camserv = state.getU().getCamserv();
|
||||
String server = Integer.toString(camserv);
|
||||
ServerConfig sc = site.getClient().getServerConfig();
|
||||
if(sc.isOnNgServer(state)) {
|
||||
server = sc.ngVideoServers.get(Integer.toString(camserv));
|
||||
camserv = Integer.parseInt(server.replaceAll("video", ""));
|
||||
previewUrl = "https://snap.mfcimg.com/snapimg/" + camserv + "/320x240/mfc_" + state.getU().getPhase()+ '_' + userChannel;
|
||||
} else if(sc.isOnWzObsVideoServer(state)) {
|
||||
server = sc.wsServers.get(Integer.toString(camserv));
|
||||
camserv = Integer.parseInt(server.replaceAll("video", ""));
|
||||
previewUrl = "https://snap.mfcimg.com/snapimg/" + camserv + "/320x240/mfc_" + state.getU().getPhase()+ '_' + userChannel;
|
||||
} else if(sc.isOnHtml5VideoServer(state)) {
|
||||
server = sc.h5Servers.get(Integer.toString(camserv));
|
||||
camserv = Integer.parseInt(server.replaceAll("video", ""));
|
||||
previewUrl = "https://snap.mfcimg.com/snapimg/" + camserv + "/320x240/mfc_" + userChannel;
|
||||
} else {
|
||||
if(camserv > 500) camserv -= 500;
|
||||
previewUrl = "https://snap.mfcimg.com/snapimg/" + camserv + "/320x240/mfc_" + userChannel;
|
||||
}
|
||||
return previewUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean follow() {
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue