forked from j62/ctbrec
Add tab "Most Popular" to MyFreeCams
This commit is contained in:
parent
b87f828313
commit
a8ca3068ed
|
@ -40,6 +40,7 @@ public class MyFreeCamsModel extends AbstractModel {
|
|||
private int uid;
|
||||
private String hlsUrl;
|
||||
private double camScore;
|
||||
private int viewerCount;
|
||||
private State state;
|
||||
private int resolution[];
|
||||
private MyFreeCams site;
|
||||
|
@ -232,6 +233,8 @@ public class MyFreeCamsModel extends AbstractModel {
|
|||
LOG.warn("Couldn't url decode topic", e);
|
||||
}
|
||||
});
|
||||
|
||||
viewerCount = Optional.ofNullable(state.getM()).map((m) -> m.getRc()).orElseGet(() -> 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -252,6 +255,14 @@ public class MyFreeCamsModel extends AbstractModel {
|
|||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getViewerCount() {
|
||||
return viewerCount;
|
||||
}
|
||||
|
||||
public void setViewerCount(int viewerCount) {
|
||||
this.viewerCount = viewerCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSite(Site site) {
|
||||
if(site instanceof MyFreeCams) {
|
||||
|
|
|
@ -43,6 +43,12 @@ public class MyFreeCamsTabProvider extends TabProvider {
|
|||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
tabs.add(hd);
|
||||
|
||||
updateService = new PopularModelService();
|
||||
ThumbOverviewTab pop = new ThumbOverviewTab("Most Popular", updateService, myFreeCams);
|
||||
pop.setRecorder(recorder);
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
tabs.add(pop);
|
||||
|
||||
|
||||
return tabs;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
package ctbrec.sites.mfc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import ctbrec.Model;
|
||||
import ctbrec.ui.PaginatedScheduledService;
|
||||
import javafx.concurrent.Task;
|
||||
|
||||
public class PopularModelService extends PaginatedScheduledService {
|
||||
|
||||
@Override
|
||||
protected Task<List<Model>> createTask() {
|
||||
return new Task<List<Model>>() {
|
||||
@Override
|
||||
public List<Model> call() throws IOException {
|
||||
MyFreeCamsClient client = MyFreeCamsClient.getInstance();
|
||||
int modelsPerPage = 50;
|
||||
return client.getModels().stream()
|
||||
.filter(m -> m.getPreview() != null)
|
||||
.filter(m -> m.getStreamUrl() != null)
|
||||
.sorted((m1, m2) -> m2.getViewerCount() - m1.getViewerCount())
|
||||
.skip( (page-1) * modelsPerPage)
|
||||
.limit(modelsPerPage)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue