Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. public void addUser(String username) {
  2.         if(client_id != null && url != null) {         
  3.             TwitchUser user = getUser(username);
  4.            
  5.             if(follows.containsKey(user.getId())) return;
  6.            
  7.             try {
  8.                 if(ratelimits.isRatelimited()) {
  9.                     log.info("Ratelimited, continue in {} millis", ratelimits.getReset() - System.currentTimeMillis());
  10.                    
  11.                     try {
  12.                         Thread.sleep(ratelimits.getReset() - System.currentTimeMillis());
  13.                     } catch (InterruptedException e) {
  14.                         log.error(e.getMessage(), e);
  15.                     }
  16.                 }
  17.                
  18.                 if(!enabled) {
  19.                     enable(DiscordBot.getDynamicConfiguration());
  20.                 }
  21.                
  22.                 HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.twitch.tv/helix/webhooks/hub").openConnection();
  23.                    
  24.                 connection.setConnectTimeout(5000);
  25.                 connection.setReadTimeout(5000);
  26.                 connection.setRequestProperty("Client-ID", client_id);
  27.                 connection.setDoOutput(true);
  28.                 connection.setRequestProperty("Content-Type", "application/json");
  29.  
  30.                    
  31.                 connection.setRequestMethod("POST");
  32.                
  33.                 JsonObject root = new JsonObject();
  34.                 root.addProperty("hub.callback", url);
  35.                 root.addProperty("hub.mode", "subscribe");
  36.                 root.addProperty("hub.topic", "https://api.twitch.tv/helix/streams?user_id=" + user.getId());
  37.                 root.addProperty("hub.lease_seconds", 600);
  38.                 root.addProperty("hub.secret", secret);
  39.                    
  40.                 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
  41.                    
  42.                 writer.write(gson.toJson(root));
  43.                 writer.flush();
  44.                 writer.close();
  45.                
  46.                 if(connection.getHeaderField("Ratelimit-Limit") != null) {
  47.                     ratelimits.setRatelimits(connection.getHeaderField("Ratelimit-Limit"),
  48.                             connection.getHeaderField("Ratelimit-Remaining"), connection.getHeaderField("Ratelimit-Reset"));
  49.                 }
  50.                
  51.                 log.info("Response {} {}", connection.getResponseCode(), connection.getResponseMessage());
  52.  
  53.                
  54.                 connection.disconnect();   
  55.                
  56.                 log.info("Subscribed to user {}", user.getLogin());
  57.             } catch (IOException e) {
  58.                 log.error(e.getMessage(), e);
  59.             }
  60.         }
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement