Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static ArrayList<JsonArray> callApi(Settings settings, String pagination) throws IOException {
- boolean hasNextPage = true;
- ArrayList<JsonArray> resultSet = new ArrayList<JsonArray>();
- int calls = 0;
- while(hasNextPage) {
- URL url = constructUrl(settings, pagination);
- HttpURLConnection con = (HttpURLConnection) url.openConnection();
- con.setRequestMethod("GET");
- con.setConnectTimeout(10000);
- con.setReadTimeout(10000);
- con.setRequestProperty("Authorization", "Bearer " + settings.getoAuth());
- con.setRequestProperty("Client-ID", settings.getClientId());
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String inputLine;
- StringBuffer content = new StringBuffer();
- while ((inputLine = in.readLine()) != null) {
- content.append(inputLine);
- }
- in.close();
- con.disconnect();
- calls++;
- Spew.out(settings, true, content.toString());
- JsonObject jsonObj = new JsonParser().parse(content.toString()).getAsJsonObject();
- JsonArray data = jsonObj.get("data").getAsJsonArray();
- if (data.size() == 0) {
- Spew.out(settings, false, "Reached end of results, no more to fetch.");
- hasNextPage = false;
- } else {
- String newPagination = "";
- try {
- newPagination = jsonObj.get("pagination").getAsJsonObject().get("cursor").getAsString();
- } catch(Exception e) {
- Spew.out(settings, true, "Pagination sucks.");
- }
- Spew.out(settings, true, "Fetching next resultset with pagination ID: " + newPagination);
- Spew.out(settings, true, "Adding to results: " + data.toString());
- resultSet.add(data);
- pagination = newPagination;
- }
- }
- Spew.out(settings, true, "Calls: " + calls);
- return resultSet;
- }
- public static URL constructUrl(Settings settings) throws MalformedURLException {
- return constructUrl(settings, "");
- }
- public static URL constructUrl(Settings settings, String pagination) throws MalformedURLException {
- String sUrl = settings.getEndpoint() + "?" +
- settings.getParamBroadcasterId() + "=" + settings.getBroadcaster();
- sUrl += "&" + "first" + "=" + "1";
- if(null != pagination && pagination != "") {
- sUrl += "&" + settings.getParamCursor() + "=" + pagination;
- }
- Spew.out(settings, true, "URL is: " + sUrl);
- return new URL(sUrl);
- }
Add Comment
Please, Sign In to add comment