forked from j62/ctbrec
1
0
Fork 0

Implement login and followed tab for cherry.tv

This commit is contained in:
0xb00bface 2021-11-07 13:43:48 +01:00
parent 36cacda106
commit 881e8afb4c
3 changed files with 17 additions and 13 deletions

View File

@ -29,6 +29,7 @@ public class CherryTvFollowedTab extends ThumbOverviewTab implements FollowedTab
super.createGui(); super.createGui();
group = new ToggleGroup(); group = new ToggleGroup();
addOnlineOfflineSelector(); addOnlineOfflineSelector();
setFilter(true);
} }
private void addOnlineOfflineSelector() { private void addOnlineOfflineSelector() {
@ -42,9 +43,16 @@ public class CherryTvFollowedTab extends ThumbOverviewTab implements FollowedTab
HBox.setMargin(offline, new Insets(5, 5, 5, 5)); HBox.setMargin(offline, new Insets(5, 5, 5, 5));
online.setSelected(true); online.setSelected(true);
group.selectedToggleProperty().addListener(e -> { group.selectedToggleProperty().addListener(e -> {
setFilter(online.isSelected());
queue.clear();
updateService.restart();
});
}
private void setFilter(boolean online) {
((CherryTvUpdateService) updateService).setFilter(m -> { ((CherryTvUpdateService) updateService).setFilter(m -> {
try { try {
return m.isOnline(false) == online.isSelected(); return m.isOnline(false) == online;
} catch (InterruptedException ex) { } catch (InterruptedException ex) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
return false; return false;
@ -52,9 +60,6 @@ public class CherryTvFollowedTab extends ThumbOverviewTab implements FollowedTab
return false; return false;
} }
}); });
queue.clear();
updateService.restart();
});
} }
@Override @Override

View File

@ -76,7 +76,6 @@ public class CherryTvUpdateService extends PaginatedScheduledService {
try (var response = site.getHttpClient().execute(request)) { try (var response = site.getHttpClient().execute(request)) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
String body = Objects.requireNonNull(response.body()).string(); String body = Objects.requireNonNull(response.body()).string();
LOG.debug(body);
Stream<Model> stream = parseModels(body).stream(); Stream<Model> stream = parseModels(body).stream();
if (filter != null) { if (filter != null) {
stream = stream.filter(filter); stream = stream.filter(filter);

View File

@ -60,11 +60,11 @@ public class CherryTvHttpClient extends HttpClient {
.post(requestBody) .post(requestBody)
.build(); .build();
LOG.debug("Logging in: {}\n{}", request.url(), body.toString(2)); LOG.debug("Logging in: {}", request.url());
try (Response response = execute(request)) { try (Response response = execute(request)) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
JSONObject resp = new JSONObject(Objects.requireNonNull(response.body()).string()); JSONObject resp = new JSONObject(Objects.requireNonNull(response.body()).string());
LOG.info(resp.toString(2)); LOG.trace(resp.toString(2));
JSONObject data = resp.getJSONObject("data"); JSONObject data = resp.getJSONObject("data");
JSONObject login = data.getJSONObject("login"); JSONObject login = data.getJSONObject("login");
loggedIn = login.optBoolean("success"); loggedIn = login.optBoolean("success");