From a2f048fe0dbd30495e57a3b8823c10e045d6f336 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Tue, 6 Nov 2018 23:17:01 +0100 Subject: [PATCH] Add a cookie to define the sorting for BongaCams The cookie is set to sort by popularity --- src/main/java/ctbrec/io/CookieJarImpl.java | 2 +- .../sites/bonga/BongaCamsHttpClient.java | 27 +++++++++++++++++++ .../ctbrec/sites/bonga/BongaCamsModel.java | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/ctbrec/io/CookieJarImpl.java b/src/main/java/ctbrec/io/CookieJarImpl.java index 8baf7a25..deaaab2c 100644 --- a/src/main/java/ctbrec/io/CookieJarImpl.java +++ b/src/main/java/ctbrec/io/CookieJarImpl.java @@ -89,7 +89,7 @@ public class CookieJarImpl implements CookieJar { return sb.toString(); } - protected Map> getCookies() { + public Map> getCookies() { return cookieStore; } } diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java b/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java index 80f4c303..165ef4ea 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java @@ -3,7 +3,10 @@ package ctbrec.sites.bonga; import java.io.IOException; import java.net.HttpCookie; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; @@ -28,6 +31,30 @@ public class BongaCamsHttpClient extends HttpClient { public BongaCamsHttpClient() { super("bongacams"); + addSortByPopularCookie(); + } + + /** + * Adds a cookie, which defines the sort order for returned model lists + */ + private void addSortByPopularCookie() { + Cookie sortByCookie = new Cookie.Builder() + .domain("bongacams.com") + .name("bcmlsf9") + .value("%7B%22limit%22%3A20%2C%22c_limit%22%3A10%2C%22th_type%22%3A%22live%22%2C%22sorting%22%3A%22popular%22%2C%22display%22%3A%22auto%22%7D") + .build(); + + Map> cookies = cookieJar.getCookies(); + for (Entry> entry : cookies.entrySet()) { + List cookieList = entry.getValue(); + for (Iterator iterator = cookieList.iterator(); iterator.hasNext();) { + Cookie cookie = iterator.next(); + if(cookie.name().equals("bcmlsf9")) { + iterator.remove(); + } + } + entry.getValue().add(sortByCookie); + } } @Override diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java b/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java index 463b4643..f4bd92e4 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java @@ -175,7 +175,7 @@ public class BongaCamsModel extends AbstractModel { StreamSource best = streamSources.get(streamSources.size()-1); resolution = new int[] {best.width, best.height}; } catch (ExecutionException | IOException | ParseException | PlaylistException e) { - LOG.error("Couldn't determine stream resolution", e); + LOG.error("Couldn't determine stream resolution for {}", getName(), e); } return resolution; } else {