Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void addUser(String username) {
- if(client_id != null && url != null) {
- TwitchUser user = getUser(username);
- if(follows.containsKey(user.getId())) return;
- try {
- if(ratelimits.isRatelimited()) {
- log.info("Ratelimited, continue in {} millis", ratelimits.getReset() - System.currentTimeMillis());
- try {
- Thread.sleep(ratelimits.getReset() - System.currentTimeMillis());
- } catch (InterruptedException e) {
- log.error(e.getMessage(), e);
- }
- }
- if(!enabled) {
- enable(DiscordBot.getDynamicConfiguration());
- }
- HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.twitch.tv/helix/webhooks/hub").openConnection();
- connection.setConnectTimeout(5000);
- connection.setReadTimeout(5000);
- connection.setRequestProperty("Client-ID", client_id);
- connection.setDoOutput(true);
- connection.setRequestProperty("Content-Type", "application/json");
- connection.setRequestMethod("POST");
- JsonObject root = new JsonObject();
- root.addProperty("hub.callback", url);
- root.addProperty("hub.mode", "subscribe");
- root.addProperty("hub.topic", "https://api.twitch.tv/helix/streams?user_id=" + user.getId());
- root.addProperty("hub.lease_seconds", 600);
- root.addProperty("hub.secret", secret);
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
- writer.write(gson.toJson(root));
- writer.flush();
- writer.close();
- if(connection.getHeaderField("Ratelimit-Limit") != null) {
- ratelimits.setRatelimits(connection.getHeaderField("Ratelimit-Limit"),
- connection.getHeaderField("Ratelimit-Remaining"), connection.getHeaderField("Ratelimit-Reset"));
- }
- log.info("Response {} {}", connection.getResponseCode(), connection.getResponseMessage());
- connection.disconnect();
- log.info("Subscribed to user {}", user.getLogin());
- } catch (IOException e) {
- log.error(e.getMessage(), e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement