From 84d626dad699e58e4cd1bf0545282a78b30990c4 Mon Sep 17 00:00:00 2001 From: Sebastien Date: Mon, 31 Dec 2018 16:26:18 +0100 Subject: [PATCH] Add rank page for test --- .../net/Broken/Commands/Over18/Madame.java | 2 + .../Tools/UserManager/Stats/GuildStats.java | 4 +- .../UserManager/Stats/UserStatsUtils.java | 3 +- .../net/Broken/webView/GeneralWebView.java | 50 +++++--- src/main/resources/templates/rank.html | 108 ++++++++++++++++++ 5 files changed, 152 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/templates/rank.html diff --git a/src/main/java/net/Broken/Commands/Over18/Madame.java b/src/main/java/net/Broken/Commands/Over18/Madame.java index 78ddbcd..9b48ca6 100644 --- a/src/main/java/net/Broken/Commands/Over18/Madame.java +++ b/src/main/java/net/Broken/Commands/Over18/Madame.java @@ -1,6 +1,7 @@ package net.Broken.Commands.Over18; import net.Broken.Commande; +import net.Broken.Tools.Command.NoDev; import net.Broken.Tools.Command.NumberedCommande; import net.Broken.Tools.EmbedMessageUtils; import net.Broken.Tools.FindContentOnWebPage; @@ -16,6 +17,7 @@ import java.io.IOException; /** * Madame command that return random picture from dites.bonjourmadame.fr */ +@NoDev public class Madame extends NumberedCommande { Logger logger = LogManager.getLogger(); MessageReceivedEvent event; diff --git a/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java b/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java index 443103c..fa1d9ba 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java +++ b/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java @@ -2,6 +2,7 @@ package net.Broken.Tools.UserManager.Stats; public class GuildStats{ public String userName; + public String avatarUrl; public long voiceTime; public long voiceXp; @@ -18,8 +19,9 @@ public class GuildStats{ public GuildStats() { } - public GuildStats(String userName, long voiceTime, long messageCount, long apiCount) { + public GuildStats(String userName, String avatarUrl, long voiceTime, long messageCount, long apiCount) { this.userName = userName; + this.avatarUrl = avatarUrl; this.voiceTime = voiceTime; this.messageCount = messageCount; this.apiCount = apiCount; diff --git a/src/main/java/net/Broken/Tools/UserManager/Stats/UserStatsUtils.java b/src/main/java/net/Broken/Tools/UserManager/Stats/UserStatsUtils.java index 4b30031..d21b1dc 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Stats/UserStatsUtils.java +++ b/src/main/java/net/Broken/Tools/UserManager/Stats/UserStatsUtils.java @@ -166,7 +166,8 @@ public class UserStatsUtils { List allStats = userStatsRepository.findByGuildId(guildId); List ranked = new ArrayList<>(); for(UserStats stats : allStats){ - GuildStats temp = new GuildStats(stats.getUser().getName(), stats.getVocalTime(), stats.getMessageCount(), stats.getApiCommandCount()); + String avatar = MainBot.jda.getUserById(stats.getUser().getJdaId()).getAvatarUrl(); + GuildStats temp = new GuildStats(stats.getUser().getName(), avatar, stats.getVocalTime(), stats.getMessageCount(), stats.getApiCommandCount()); if(stats.getUser().getId().equals(userEntity.getId())){ selfGuildStats = temp; } diff --git a/src/main/java/net/Broken/webView/GeneralWebView.java b/src/main/java/net/Broken/webView/GeneralWebView.java index 1273fc3..9564d13 100644 --- a/src/main/java/net/Broken/webView/GeneralWebView.java +++ b/src/main/java/net/Broken/webView/GeneralWebView.java @@ -5,6 +5,8 @@ import net.Broken.DB.Repository.UserRepository; import net.Broken.MainBot; import net.Broken.Tools.SettingsUtils; import net.Broken.Tools.UserManager.Exceptions.UnknownTokenException; +import net.Broken.Tools.UserManager.Stats.GuildStatsPack; +import net.Broken.Tools.UserManager.Stats.UserStatsUtils; import net.Broken.Tools.UserManager.UserUtils; import net.dv8tion.jda.core.entities.Guild; import net.dv8tion.jda.core.entities.User; @@ -16,8 +18,14 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; + + + + + import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -66,11 +74,7 @@ public class GeneralWebView { model.addAttribute("noMutualGuilds", true); else model.addAttribute("noMutualGuilds", false); - Guild guild = MainBot.jda.getGuildById(guildId); - if(guild != null) - model.addAttribute("guild_name", guild.getName()); - else - model.addAttribute("guild_name", ""); + addGuildAndRedirect(model, guildId); model.addAttribute("isAdmin", SettingsUtils.getInstance().checkPermission(token, guildId)); model.addAttribute("isLogged", true); model.addAttribute("inviteLink", "https://discordapp.com/oauth2/authorize?client_id=" + MainBot.jda.getSelfUser().getId() + "&scope=bot&permissions=8"); @@ -122,12 +126,8 @@ public class GeneralWebView { public String settings(Model model, @CookieValue(value = "guild", defaultValue = "") String guildId, @CookieValue(value = "token", defaultValue = "") String token){ SettingsUtils settingsUtils = SettingsUtils.getInstance(); if(settingsUtils.checkPermission(token, guildId)){ + addGuildAndRedirect(model, guildId); Guild guild = MainBot.jda.getGuildById(guildId); - if(guild != null) - model.addAttribute("guild_name", guild.getName()); - else - model.addAttribute("guild_name", ""); - model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); model.addAttribute("settings", SettingsUtils.getInstance().extractSettings(guild)); model.addAttribute("isAdmin", SettingsUtils.getInstance().checkPermission(token, guildId)); @@ -152,12 +152,36 @@ public class GeneralWebView { - @RequestMapping("/500") - public String errorTest(Model model){ - return "error/500"; + @RequestMapping("/rank") + public String login(Model model, @CookieValue(value = "token") String token, @CookieValue(value = "guild", defaultValue = "") String cookieGuildId, @RequestParam(value = "guild", defaultValue = "") String praramGuildId){ + model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); + try { + UserEntity userEntity = userUtils.getUserWithApiToken(userRepository, token); + addGuildAndRedirect(model, cookieGuildId); + + GuildStatsPack stack = UserStatsUtils.getINSTANCE().getStatPack(userEntity, cookieGuildId); + model.addAttribute("stack", stack); + return CheckPage.getPageIfReady("rank"); + + } catch (UnknownTokenException e) { + return "login"; // TODO Public rank + } + } + + private Model addGuildAndRedirect(Model model, String guildId){ + Guild guild = MainBot.jda.getGuildById(guildId); + if(guild != null) + model.addAttribute("guild_name", guild.getName()); + else + model.addAttribute("guild_name", ""); + model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); + return model; + } + + } diff --git a/src/main/resources/templates/rank.html b/src/main/resources/templates/rank.html new file mode 100644 index 0000000..6ee1105 --- /dev/null +++ b/src/main/resources/templates/rank.html @@ -0,0 +1,108 @@ + + + + + + Claptrap Bot + + + + + + + + + + + + + + + + + + + +
+
...
+
+ +
+ +
+
+
+
+ +
+
+

+
+
+
+
+ + + + + + + + + + + +
Rank
+

/ 50

+
+ +
+
+ + + + + + + + + + + +
Experience
+

Xp

+
+
+
+
+ +
+ +
+
...
+
+ + + + + + + + + + + + + +