Set online state in all update services
This commit is contained in:
parent
6c0fe83816
commit
217b56b88c
|
@ -1,9 +1,13 @@
|
||||||
package ctbrec.ui.sites.cam4;
|
package ctbrec.ui.sites.cam4;
|
||||||
|
|
||||||
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ThreadFactory;
|
import java.util.concurrent.ThreadFactory;
|
||||||
|
@ -64,7 +68,11 @@ public class Cam4UpdateService extends PaginatedScheduledService {
|
||||||
if(loginRequired) {
|
if(loginRequired) {
|
||||||
SiteUiFactory.getUi(site).login();
|
SiteUiFactory.getUi(site).login();
|
||||||
}
|
}
|
||||||
Request request = new Request.Builder().url(url).build();
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
|
.build();
|
||||||
try (Response response = site.getHttpClient().execute(request)) {
|
try (Response response = site.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
JSONObject json = new JSONObject(response.body().string());
|
JSONObject json = new JSONObject(response.body().string());
|
||||||
|
@ -76,11 +84,15 @@ public class Cam4UpdateService extends PaginatedScheduledService {
|
||||||
Element profileLink = HtmlParser.getTag(boxHtml, "a.profile-preview");
|
Element profileLink = HtmlParser.getTag(boxHtml, "a.profile-preview");
|
||||||
String path = profileLink.attr("href");
|
String path = profileLink.attr("href");
|
||||||
String slug = path.substring(1);
|
String slug = path.substring(1);
|
||||||
Cam4Model model = (Cam4Model) site.createModel(slug);
|
Cam4Model model = site.createModel(slug);
|
||||||
String playlistUrl = profileLink.attr("data-hls-preview-url");
|
String playlistUrl = profileLink.attr("data-hls-preview-url");
|
||||||
model.setPlaylistUrl(playlistUrl);
|
model.setPlaylistUrl(playlistUrl);
|
||||||
model.setPreview("https://snapshots.xcdnpro.com/thumbnails/" + model.getName() + "?s=" + System.currentTimeMillis());
|
model.setPreview("https://snapshots.xcdnpro.com/thumbnails/" + model.getName() + "?s=" + System.currentTimeMillis());
|
||||||
model.setDescription(parseDesription(boxHtml));
|
model.setDescription(parseDesription(boxHtml));
|
||||||
|
model.setOnlineState(ONLINE);
|
||||||
|
if(boxHtml.contains("In private show")) {
|
||||||
|
model.setOnlineState(PRIVATE);
|
||||||
|
}
|
||||||
models.add(model);
|
models.add(model);
|
||||||
}
|
}
|
||||||
return models;
|
return models;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.Model.State.*;
|
||||||
import static ctbrec.io.HttpConstants.*;
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -81,6 +82,7 @@ public class StreamateFollowedService extends PaginatedScheduledService {
|
||||||
model.setPreview(p.getString("thumbnail"));
|
model.setPreview(p.getString("thumbnail"));
|
||||||
boolean online = p.optBoolean("online") && notPrivateEtc(p);
|
boolean online = p.optBoolean("online") && notPrivateEtc(p);
|
||||||
model.setOnline(online);
|
model.setOnline(online);
|
||||||
|
model.setOnlineState(online ? ONLINE : OFFLINE);
|
||||||
if (online == showOnline) {
|
if (online == showOnline) {
|
||||||
models.add(model);
|
models.add(model);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.Model.State.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -52,6 +54,7 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
||||||
List<Model> models = new ArrayList<>();
|
List<Model> models = new ArrayList<>();
|
||||||
String content = response.body().string();
|
String content = response.body().string();
|
||||||
JSONObject json = new JSONObject(content);
|
JSONObject json = new JSONObject(content);
|
||||||
|
System.err.println(json.toString(2));
|
||||||
JSONArray performers = json.getJSONArray("performers");
|
JSONArray performers = json.getJSONArray("performers");
|
||||||
for (int i = 0; i < performers.length(); i++) {
|
for (int i = 0; i < performers.length(); i++) {
|
||||||
JSONObject p = performers.getJSONObject(i);
|
JSONObject p = performers.getJSONObject(i);
|
||||||
|
@ -59,7 +62,9 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
||||||
StreamateModel model = (StreamateModel) streamate.createModel(nickname);
|
StreamateModel model = (StreamateModel) streamate.createModel(nickname);
|
||||||
model.setId(p.getLong("id"));
|
model.setId(p.getLong("id"));
|
||||||
model.setPreview(p.getString("thumbnail"));
|
model.setPreview(p.getString("thumbnail"));
|
||||||
model.setOnline(p.optBoolean("online"));
|
boolean online = p.optBoolean("online");
|
||||||
|
model.setOnline(online);
|
||||||
|
model.setOnlineState(online ? ONLINE : OFFLINE);
|
||||||
// TODO figure out, what all the states mean
|
// TODO figure out, what all the states mean
|
||||||
// liveState {…}
|
// liveState {…}
|
||||||
// exclusiveShow false
|
// exclusiveShow false
|
||||||
|
@ -69,6 +74,11 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
||||||
// preGoldShow true
|
// preGoldShow true
|
||||||
// privateChat false
|
// privateChat false
|
||||||
// specialShow false
|
// specialShow false
|
||||||
|
if (p.optBoolean("onBreak")) {
|
||||||
|
model.setOnlineState(AWAY);
|
||||||
|
} else if (p.optBoolean("goldShow") || p.optBoolean("privateChat") || p.optBoolean("exclusiveShow")) {
|
||||||
|
model.setOnlineState(PRIVATE);
|
||||||
|
}
|
||||||
models.add(model);
|
models.add(model);
|
||||||
}
|
}
|
||||||
return models;
|
return models;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.stripchat;
|
package ctbrec.ui.sites.stripchat;
|
||||||
|
|
||||||
|
import static ctbrec.Model.State.*;
|
||||||
import static ctbrec.io.HttpConstants.*;
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -68,6 +69,7 @@ public class StripchatFollowedUpdateService extends PaginatedScheduledService {
|
||||||
try (Response response = stripchat.getHttpClient().execute(request)) {
|
try (Response response = stripchat.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
JSONObject json = new JSONObject(response.body().string());
|
JSONObject json = new JSONObject(response.body().string());
|
||||||
|
System.err.println(json.toString(2));
|
||||||
if (json.has("models")) {
|
if (json.has("models")) {
|
||||||
JSONArray users = json.getJSONArray("models");
|
JSONArray users = json.getJSONArray("models");
|
||||||
for (int i = 0; i < users.length(); i++) {
|
for (int i = 0; i < users.length(); i++) {
|
||||||
|
@ -75,6 +77,7 @@ public class StripchatFollowedUpdateService extends PaginatedScheduledService {
|
||||||
StripchatModel model = stripchat.createModel(user.optString("username"));
|
StripchatModel model = stripchat.createModel(user.optString("username"));
|
||||||
model.setDescription(user.optString("description"));
|
model.setDescription(user.optString("description"));
|
||||||
model.setPreview(user.optString("previewUrlThumbBig"));
|
model.setPreview(user.optString("previewUrlThumbBig"));
|
||||||
|
model.setOnlineState(mapStatus(user.optString("status")));
|
||||||
models.add(model);
|
models.add(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,4 +117,17 @@ public class StripchatFollowedUpdateService extends PaginatedScheduledService {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected ctbrec.Model.State mapStatus(String status) {
|
||||||
|
switch (status) {
|
||||||
|
case "public":
|
||||||
|
return ONLINE;
|
||||||
|
case "idle":
|
||||||
|
return AWAY;
|
||||||
|
case "off":
|
||||||
|
return OFFLINE;
|
||||||
|
default:
|
||||||
|
return UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,7 @@ public class StripchatUpdateService extends PaginatedScheduledService {
|
||||||
model.setDescription("");
|
model.setDescription("");
|
||||||
model.setPreview(jsonModel.optString("snapshotUrl"));
|
model.setPreview(jsonModel.optString("snapshotUrl"));
|
||||||
model.setDisplayName(model.getName());
|
model.setDisplayName(model.getName());
|
||||||
|
model.setOnlineState(Model.State.ONLINE);
|
||||||
models.add(model);
|
models.add(model);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.warn("Couldn't parse one of the models: {}", jsonModel, e);
|
LOG.warn("Couldn't parse one of the models: {}", jsonModel, e);
|
||||||
|
|
Loading…
Reference in New Issue