diff --git a/src/main/java/net/Broken/DB/Entity/UserEntity.java b/src/main/java/net/Broken/DB/Entity/UserEntity.java index e61a64d..6cb2f94 100644 --- a/src/main/java/net/Broken/DB/Entity/UserEntity.java +++ b/src/main/java/net/Broken/DB/Entity/UserEntity.java @@ -3,6 +3,7 @@ package net.Broken.DB.Entity; import com.fasterxml.jackson.annotation.JsonIgnore; import net.Broken.Tools.UserManager.UserUtils; import net.dv8tion.jda.core.entities.User; +import org.springframework.security.crypto.password.PasswordEncoder; import javax.persistence.*; import java.util.ArrayList; @@ -40,10 +41,11 @@ public class UserEntity { this.apiToken = apiToken; } - public UserEntity(User user){ + public UserEntity(User user, PasswordEncoder passwordEncoder){ this.name = user.getName(); this.jdaId = user.getId(); this.apiToken = UserUtils.getInstance().generateApiToken(); + this.password = passwordEncoder.encode(UserUtils.getInstance().generateCheckToken()); } public String getPassword() { diff --git a/src/main/java/net/Broken/Init.java b/src/main/java/net/Broken/Init.java index fc74f26..f217660 100644 --- a/src/main/java/net/Broken/Init.java +++ b/src/main/java/net/Broken/Init.java @@ -34,7 +34,7 @@ public class Init { * @param dev dev Mode or not * @return JDA object */ - static JDA initJda(String token, boolean dev){ + static JDA initJda(String token){ JDA jda = null; logger.debug("-------------------INITIALISATION-------------------"); diff --git a/src/main/java/net/Broken/MainBot.java b/src/main/java/net/Broken/MainBot.java index 1411b3b..de467b0 100644 --- a/src/main/java/net/Broken/MainBot.java +++ b/src/main/java/net/Broken/MainBot.java @@ -53,25 +53,12 @@ public class MainBot { logger.info("--------------Starting Bot-------------"); logger.info("======================================="); - - String token = null; - int i = 0; - for(String aArg: args){ - logger.debug(aArg); - if(aArg.startsWith("--") || aArg.startsWith("-")){ - aArg = aArg.replaceAll("-",""); - if(aArg.equals("dev") || aArg.equals("d")){ - dev = true; - } - } - i++; - } - token = System.getenv("TOKEN"); - jda = Init.initJda(token, dev); - if(System.getenv("dev")!= null){ - dev = true; + if(System.getenv("DEV")!= null){ + dev = Boolean.parseBoolean(System.getenv("DEV")); } + String token = System.getenv("TOKEN"); + jda = Init.initJda(token); ConfigurableApplicationContext ctx = SpringApplication.run(MainBot.class, args); @@ -85,14 +72,6 @@ public class MainBot { Init.polish(jda); ready = true; - - - - - - - - } /** diff --git a/src/main/java/net/Broken/RestApi/UserManagerAPIController.java b/src/main/java/net/Broken/RestApi/UserManagerAPIController.java index 645a3c6..2617823 100644 --- a/src/main/java/net/Broken/RestApi/UserManagerAPIController.java +++ b/src/main/java/net/Broken/RestApi/UserManagerAPIController.java @@ -128,7 +128,7 @@ public class UserManagerAPIController { @RequestMapping(value = "/oauthLogin", method = RequestMethod.POST) public ResponseEntity oauthLogin(@RequestParam(value = "token") String discordToken){ logger.debug(discordToken); - UserEntity user = Oauth.getInstance().getUserEntity(discordToken, userRepository); + UserEntity user = Oauth.getInstance().getUserEntity(discordToken, userRepository, passwordEncoder); logger.info("OAuth login for " + user.getName()); return new ResponseEntity<>(new UserConnectionData(true, user.getName(), user.getApiToken(), ""), HttpStatus.OK); diff --git a/src/main/java/net/Broken/Tools/LimitChecker.java b/src/main/java/net/Broken/Tools/LimitChecker.java index b0514df..1e58730 100644 --- a/src/main/java/net/Broken/Tools/LimitChecker.java +++ b/src/main/java/net/Broken/Tools/LimitChecker.java @@ -40,7 +40,7 @@ public class LimitChecker { } number-=400; redirected = false; - logger.trace("First pass: "+number); + logger.debug("First pass: "+number); while(!redirected ) { String origin = baseURL+number+"-2/"; @@ -53,7 +53,7 @@ public class LimitChecker { } number-=90; redirected = false; - logger.trace("Second pass: "+number); + logger.debug("Second pass: "+number); while(!redirected ) { String origin = baseURL+number+"-2/"; @@ -66,7 +66,7 @@ public class LimitChecker { } number-=9; redirected = false; - logger.trace("Third pass: "+number); + logger.debug("Third pass: "+number); while(!redirected ) { String origin = baseURL+number+"-2/"; @@ -78,7 +78,7 @@ public class LimitChecker { redirected = true; } number-=1; - logger.trace("Final pass: "+number); + logger.debug("Final pass: "+number); return number; diff --git a/src/main/java/net/Broken/Tools/UserManager/Oauth.java b/src/main/java/net/Broken/Tools/UserManager/Oauth.java index b4ad19a..b6e7f21 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Oauth.java +++ b/src/main/java/net/Broken/Tools/UserManager/Oauth.java @@ -6,6 +6,7 @@ import net.Broken.MainBot; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.json.JSONObject; +import org.springframework.security.crypto.password.PasswordEncoder; import java.io.BufferedReader; import java.io.IOException; @@ -53,13 +54,13 @@ public class Oauth { } - public UserEntity getUserEntity(String token, UserRepository userRepository){ + public UserEntity getUserEntity(String token, UserRepository userRepository, PasswordEncoder passwordEncoder){ String discorId = getUserId(token); List userEntitys = userRepository.findByJdaId(discorId); if(userEntitys.size() != 0){ return userEntitys.get(0); }else{ - UserEntity user = new UserEntity(MainBot.jda.getUserById(discorId)); + UserEntity user = new UserEntity(MainBot.jda.getUserById(discorId), passwordEncoder); user = userRepository.save(user); return user; } diff --git a/src/main/resources/static/js/music.js b/src/main/resources/static/js/music.js index 34ff078..b43098c 100644 --- a/src/main/resources/static/js/music.js +++ b/src/main/resources/static/js/music.js @@ -1,18 +1,21 @@ -var savedPlaylist; -var error = false; -var state; -var disconected = false; -var modal_loading; -var btn_play; -var btn_stop; -var btn_next; -var btn_info; -var btn_disconnect; -var btn_flush; -var btn_add; -var switchAutoFlow; -var loadingFlag = false; -var guild; +//import * as M from "./materialize"; + +let savedPlaylist; +let error = false; +let state; +let disconected = false; +let modal_loading; +let btn_play; +let btn_stop; +let btn_next; +let btn_info; +let btn_disconnect_music; +let btn_flush; +let btn_add; +let switchAutoFlow; +let loadingFlag = true; +let guild; +let interval; $(document).ready(function () { if (Cookies.get('guild') !== undefined) { @@ -22,13 +25,12 @@ $(document).ready(function () { btn_stop = $('#btn_stop'); btn_next = $('#btn_next'); btn_info = $('#btn_info'); - btn_disconnect = $('#btn_disconnect'); + btn_disconnect_music = $('#btn_disconnect'); btn_flush = $('#flush_btn'); btn_add = $('#add_btn'); switchAutoFlow = $("#autoflow"); - setInterval("getCurentMusic()", 1000); M.Modal.init($('#modalAdd').get(0)); @@ -38,10 +40,10 @@ $(document).ready(function () { dismissible: false // Modal can be dismissed by clicking outside of the modal }); - modal_loading = $('#modal_loading'); - modal_loading.modal({ - dismissible: false - }); + + modal_loading = M.Modal.init($('#modal_loading').get(0), {dismissible: false}); + modal_loading.open(); + $('.dropdown-button').dropdown({ @@ -56,6 +58,8 @@ $(document).ready(function () { }); listeners(); + interval = setInterval("getCurentMusic()", 1000); + } }); @@ -84,7 +88,7 @@ function getCurentMusic() { enableBtn(btn_flush); enableBtn(btn_play); enableBtn(btn_next); - enableBtn(btn_disconnect); + enableBtn(btn_disconnect_music); } else { disableBtn(btn_play); @@ -93,7 +97,7 @@ function getCurentMusic() { disableBtn(btn_add); disableBtn(btn_flush); disableBtn(btn_next); - disableBtn(btn_disconnect); + disableBtn(btn_disconnect_music); } btn_play.children().text("play_arrow"); $('#music_img').attr("src", "/img/no_music.jpg"); @@ -148,7 +152,7 @@ function getCurentMusic() { disableBtn(btn_add); disableBtn(btn_flush); disableBtn(btn_next); - disableBtn(btn_disconnect); + disableBtn(btn_disconnect_music); $('#music_img').attr("src", "/img/disconnected.png"); if (Cookies.get('token') != undefined) { @@ -158,12 +162,19 @@ function getCurentMusic() { } } - + clearInterval(interval); break; } if (switchAutoFlow.is(':checked') != data.autoflow) switchAutoFlow.prop('checked', data.autoflow); - getPlayList(); + if(data.state !== "DISCONNECTED" && data.state !== "STOP") + getPlayList(); + else{ + if (loadingFlag) { + modal_loading.close(); + loadingFlag = false; + } + } }) .fail(function (data) { @@ -187,7 +198,6 @@ function getPlayList() { data = data.list; if (data != null && data.length != 0) { var noUpdate = comparePlaylist(data, savedPlaylist); - // console.log("List up to date : "+noUpdate); if (!noUpdate) { savedPlaylist = data; $('#playlist_list').empty(); @@ -213,7 +223,7 @@ function getPlayList() { command: "DELL", url: $(this).attr("data_url") }; - sendCommand(command); + sendCommand(command, true); }); @@ -224,7 +234,7 @@ function getPlayList() { savedPlaylist = {}; } if (loadingFlag) { - modal_loading.modal('close'); + modal_loading.close(); loadingFlag = false; } @@ -239,7 +249,7 @@ function getPlayList() { error = true; } if (loadingFlag) { - modal_loading.modal('close'); + modal_loading.close(); loadingFlag = false; } @@ -250,7 +260,7 @@ function getPlayList() { function getChannels() { $.get("api/music/getChanel?guild=" + guild, function (data) { }).done(function (data) { - console.log(data); + $('#channelForm').empty(); data.forEach(function (element) { var template = $('#radioTemplate').clone(); @@ -294,7 +304,6 @@ function updateModal(data) { function updateControl(data) { $('#music_text').text(data.info.audioTrackInfo.title); var percent = (data.currentPos / data.info.audioTrackInfo.length) * 100; - // console.log(percent) if (!$('#music_progress').hasClass("indeterminate")) { $('#music_progress').addClass("determinate").removeClass("indeterminate"); } @@ -307,7 +316,7 @@ function updateControl(data) { enableBtn(btn_add); enableBtn(btn_flush); enableBtn(btn_next); - enableBtn(btn_disconnect); + enableBtn(btn_disconnect_music); } else { disableBtn(btn_play); @@ -316,20 +325,23 @@ function updateControl(data) { disableBtn(btn_add); disableBtn(btn_flush); disableBtn(btn_next); - disableBtn(btn_disconnect); + disableBtn(btn_disconnect_music); } $('#music_img').attr("src", "https://img.youtube.com/vi/" + data.info.audioTrackInfo.identifier + "/hqdefault.jpg"); - // console.log(data); $('#total_time').text(msToTime(data.info.audioTrackInfo.length)); $('#current_time').text(msToTime(data.currentPos)); updateModal(data); } -function sendCommand(command) { - modal_loading.modal('open'); - // console.log(command); +function sendCommand(command, stopRefresh) { + if(stopRefresh){ + clearInterval(interval); + modal_loading.open(); + + } + $.ajax({ type: "POST", dataType: 'json', @@ -337,15 +349,22 @@ function sendCommand(command) { url: "/api/music/command?guild=" + guild, data: JSON.stringify(command), success: function (data) { - console.log(data); loadingFlag = true; - getCurentMusic(); + if(stopRefresh) + interval = setInterval("getCurentMusic()", 1000); + if(command.command === "ADD"){ + M.toast({ + html: " check_circle Video added to playlist!", + classes: 'green', + displayLength: 5000 + }); + } } }).fail(function (data) { console.log(data); - modal_loading.modal('close'); + modal_loading.close(); if (data.responseJSON.error === "token") { Cookies.remove('token'); Cookies.remove('name'); @@ -365,14 +384,13 @@ function comparePlaylist(list1, list2) { if (list1 == null || list2 == null) { return false; } - if (list1.length !== list2.length) { return false; } - for (var i = 0; i++; i < list1.length) { - if (list1[i].uri !== list2[i].uri) + for (let i = 0; i < list1.length; i++) { + if (list1[i].audioTrackInfo.uri !== list2[i].audioTrackInfo.uri) return false } return true; @@ -381,17 +399,16 @@ function comparePlaylist(list1, list2) { function search() { - let query = $('#input_search').val(); + let input_search = $('#input_search'); let list = $("#search_result"); let load = $("#search_load"); disableBtn($('#btn_search')); - // list.addClass("hide"); + input_search.attr('disabled', 'disabled'); list.removeClass("scale-in"); load.removeClass("hide"); load.addClass("scale-in"); - $.get("/api/music/search?query=" + query, (data) => { - // console.log(data); + $.get("/api/music/search?query=" + input_search.val(), (data) => { list.empty(); data.forEach((item)=>{ @@ -417,11 +434,32 @@ function search() { load.addClass("hide"); list.addClass("scale-in"); enableBtn($('#btn_search')); + input_search.removeAttr("disabled"); + input_search.focus(); + }).fail( (data)=>{ + if(data.status === 401){ + M.toast({ + html: " warning Unauthorized, please re-login.", + classes: 'red', + displayLength: 99999999 + }); + }else{ + M.toast({ + html: " warningInternal server error, please contact dev.", + classes: 'red', + displayLength: 99999999 + }); + + } + list.empty(); + load.removeClass("scale-in"); + load.addClass("hide"); + enableBtn($('#btn_search')); + enableBtn(input_search); }); - } @@ -440,7 +478,7 @@ function addListClick(event){ playlistLimit: $('#limit_range').val(), onHead: !$('#bottom').is(':checked') }; - sendCommand(command); + sendCommand(command, false); } function ytTimeToTime(duration) { @@ -497,39 +535,32 @@ function listeners() { $('#btn_play').click(function () { switch (state) { case "PLAYING": - sendCommand({command: "PAUSE"}); + sendCommand({command: "PAUSE"}, true); break; case "PAUSE": - sendCommand({command: "PLAY"}); + sendCommand({command: "PLAY"}, true); break; default: - sendCommand({command: "PLAY"}); + sendCommand({command: "PLAY"},true); } }); $('#btn_search').click(search); + $("form").submit(function(e) { e.preventDefault(); search(); }); $('#btn_next').click(function () { - sendCommand({command: "NEXT"}); + sendCommand({command: "NEXT"},true); }); $('#btn_stop').click(function () { - sendCommand({command: "STOP"}); + sendCommand({command: "STOP"}, true); }); - $('#input_link').on("input", function () { - if ($('#input_link').val() == "") { - disableBtn($('#btn_add')); - } - else { - enableBtn($('#btn_add')); - } - }); $('#input_search').on("input", function () { if ($('#input_search').val() == "") { @@ -540,14 +571,6 @@ function listeners() { } }); - $('#add_btn').click(function () { - if ($('#input_search').val() == "") { - disableBtn($('#btn_search')); - } - else { - enableBtn($('#btn_search')); - } - }); @@ -561,7 +584,7 @@ function listeners() { var command = { command: "FLUSH" }; - sendCommand(command); + sendCommand(command, true); }); $('#btn_ok_channel').click(function () { @@ -570,20 +593,19 @@ function listeners() { command: "CONNECT", chanelId: $('input[name=vocalRadio]:checked').val() }; - sendCommand(command); + sendCommand(command, true); }); $('#btn_disconnect').click(function () { - sendCommand({command: "DISCONNECT"}) + sendCommand({command: "DISCONNECT"}, true) }); switchAutoFlow.click(function () { - // console.log(switchAutoFlow.is(':checked')); if (switchAutoFlow.is(':checked')) { - sendCommand({command: 'AUTOFLOWON'}) + sendCommand({command: 'AUTOFLOWON'}, false) } else - sendCommand({command: 'AUTOFLOWOFF'}) + sendCommand({command: 'AUTOFLOWOFF'}, false) }); } diff --git a/src/main/resources/static/js/navabar.js b/src/main/resources/static/js/navabar.js index 6c5fb29..434d67d 100644 --- a/src/main/resources/static/js/navabar.js +++ b/src/main/resources/static/js/navabar.js @@ -100,6 +100,7 @@ function disconnected() { function tryConnection() { + var request = { name: input_name.val(), password: input_psw.val()}; $.ajax({ type: "POST", @@ -175,7 +176,12 @@ function navListeners() { $('.nav-change-guild').click(function () { Cookies.remove('guild'); window.location.reload(true); - }) + }); + + $("#login_form").submit(function(e){ + e.preventDefault(); + tryConnection(); + }); } function getGuild(){ diff --git a/src/main/resources/templates/header.html b/src/main/resources/templates/header.html index 61c0113..1660cd5 100644 --- a/src/main/resources/templates/header.html +++ b/src/main/resources/templates/header.html @@ -123,7 +123,7 @@
-
+
account_box diff --git a/src/main/resources/templates/music.html b/src/main/resources/templates/music.html index 92ca46b..8cd26c3 100644 --- a/src/main/resources/templates/music.html +++ b/src/main/resources/templates/music.html @@ -59,7 +59,7 @@
- +