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();
group = new ToggleGroup();
addOnlineOfflineSelector();
setFilter(true);
}
private void addOnlineOfflineSelector() {
@ -42,21 +43,25 @@ public class CherryTvFollowedTab extends ThumbOverviewTab implements FollowedTab
HBox.setMargin(offline, new Insets(5, 5, 5, 5));
online.setSelected(true);
group.selectedToggleProperty().addListener(e -> {
((CherryTvUpdateService) updateService).setFilter(m -> {
try {
return m.isOnline(false) == online.isSelected();
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
return false;
} catch (Exception ex) {
return false;
}
});
setFilter(online.isSelected());
queue.clear();
updateService.restart();
});
}
private void setFilter(boolean online) {
((CherryTvUpdateService) updateService).setFilter(m -> {
try {
return m.isOnline(false) == online;
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
return false;
} catch (Exception ex) {
return false;
}
});
}
@Override
protected void onSuccess() {
grid.getChildren().remove(status);

View File

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

View File

@ -60,11 +60,11 @@ public class CherryTvHttpClient extends HttpClient {
.post(requestBody)
.build();
LOG.debug("Logging in: {}\n{}", request.url(), body.toString(2));
LOG.debug("Logging in: {}", request.url());
try (Response response = execute(request)) {
if (response.isSuccessful()) {
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 login = data.getJSONObject("login");
loggedIn = login.optBoolean("success");