Guest User

Untitled

a guest
Aug 16th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1.     public static ArrayList<JsonArray> callApi(Settings settings, String pagination) throws IOException {
  2.         boolean hasNextPage = true;
  3.         ArrayList<JsonArray> resultSet = new ArrayList<JsonArray>();
  4.         int calls = 0;
  5.         while(hasNextPage) {
  6.             URL url = constructUrl(settings, pagination);
  7.             HttpURLConnection con = (HttpURLConnection) url.openConnection();
  8.             con.setRequestMethod("GET");
  9.             con.setConnectTimeout(10000);
  10.             con.setReadTimeout(10000);
  11.             con.setRequestProperty("Authorization", "Bearer " + settings.getoAuth());
  12.             con.setRequestProperty("Client-ID", settings.getClientId());
  13.             BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
  14.             String inputLine;
  15.             StringBuffer content = new StringBuffer();
  16.             while ((inputLine = in.readLine()) != null) {
  17.                 content.append(inputLine);
  18.             }
  19.             in.close();
  20.             con.disconnect();
  21.             calls++;
  22.             Spew.out(settings, true, content.toString());
  23.             JsonObject jsonObj = new JsonParser().parse(content.toString()).getAsJsonObject();
  24.  
  25.             JsonArray data = jsonObj.get("data").getAsJsonArray();
  26.             if (data.size() == 0) {
  27.                 Spew.out(settings, false, "Reached end of results, no more to fetch.");
  28.                 hasNextPage = false;
  29.             } else {
  30.                 String newPagination = "";
  31.                 try {
  32.                     newPagination = jsonObj.get("pagination").getAsJsonObject().get("cursor").getAsString();
  33.                 } catch(Exception e) {
  34.                     Spew.out(settings, true, "Pagination sucks.");
  35.                 }
  36.                 Spew.out(settings, true, "Fetching next resultset with pagination ID: " + newPagination);
  37.                 Spew.out(settings, true, "Adding to results: " + data.toString());
  38.                 resultSet.add(data);
  39.                 pagination = newPagination;
  40.             }
  41.         }
  42.         Spew.out(settings, true, "Calls: " + calls);
  43.         return resultSet;
  44.     }
  45.  
  46.     public static URL constructUrl(Settings settings) throws MalformedURLException {
  47.         return constructUrl(settings, "");
  48.     }
  49.     public static URL constructUrl(Settings settings, String pagination) throws MalformedURLException {
  50.         String sUrl = settings.getEndpoint() + "?" +
  51.                 settings.getParamBroadcasterId() + "=" + settings.getBroadcaster();
  52.         sUrl += "&" + "first" + "=" + "1";
  53.         if(null != pagination && pagination != "") {
  54.             sUrl += "&" + settings.getParamCursor() + "=" + pagination;
  55.         }
  56.         Spew.out(settings, true, "URL is: " + sUrl);
  57.         return new URL(sUrl);
  58.     }
Add Comment
Please, Sign In to add comment