mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-05-08 10:50:44 -05:00
Fix /embed/calendar{guild-id} page
This commit is contained in:
+20
-20
@@ -58,16 +58,16 @@ public class EventEndpoint {
|
||||
Long endEpoch = startEpoch + (86400000L * daysInMonth);
|
||||
GuildSettings settings;
|
||||
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
if (requestBody.has("guild_id")) {
|
||||
long guildId = Long.valueOf(requestBody.getString("guild_id"));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
} else {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
}
|
||||
if (DiscordAccountHandler.getHandler().hasEmbedMap(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getEmbedMap(request);
|
||||
WebGuild g = (WebGuild) m.get("embed");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
@@ -129,16 +129,16 @@ public class EventEndpoint {
|
||||
Long endEpoch = startEpoch + 86400000L;
|
||||
GuildSettings settings;
|
||||
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
if (requestBody.has("guild_id")) {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
} else {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
}
|
||||
if (DiscordAccountHandler.getHandler().hasEmbedMap(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getEmbedMap(request);
|
||||
WebGuild g = (WebGuild) m.get("embed");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
|
||||
+38
-2
@@ -20,6 +20,7 @@ public class DiscordAccountHandler {
|
||||
private static Timer timer;
|
||||
|
||||
private HashMap<String, Map> discordAccounts = new HashMap<>();
|
||||
private HashMap<String, Map> embedMaps = new HashMap<>();
|
||||
|
||||
//Instance handling
|
||||
private DiscordAccountHandler() {
|
||||
@@ -58,6 +59,14 @@ public class DiscordAccountHandler {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasEmbedMap(HttpServletRequest request) {
|
||||
try {
|
||||
return embedMaps.containsKey((String) request.getSession(true).getAttribute("embed"));
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//Getters
|
||||
public Map getAccount(HttpServletRequest request) {
|
||||
if ((String) request.getSession(true).getAttribute("account") != null && discordAccounts.containsKey((String) request.getSession(true).getAttribute("account"))) {
|
||||
@@ -67,7 +76,12 @@ public class DiscordAccountHandler {
|
||||
|
||||
m.remove("status");
|
||||
m.put("status", DisCalServer.getNetworkInfo());
|
||||
|
||||
//Remove from embed map just in case...
|
||||
removeEmbedMap(request);
|
||||
|
||||
return m;
|
||||
|
||||
} else {
|
||||
//Not logged in...
|
||||
Map m = new HashMap();
|
||||
@@ -76,10 +90,18 @@ public class DiscordAccountHandler {
|
||||
m.put("year", LocalDate.now().getYear());
|
||||
m.put("redirUri", BotSettings.REDIR_URI.get());
|
||||
m.put("status", DisCalServer.getNetworkInfo());
|
||||
|
||||
//Remove from embed map just in case...
|
||||
removeEmbedMap(request);
|
||||
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
||||
public Map getEmbedMap(HttpServletRequest request) {
|
||||
return embedMaps.get((String) request.getSession(true).getAttribute("embed"));
|
||||
}
|
||||
|
||||
public Map getAccountForGuildEmbed(HttpServletRequest request, String guildId) {
|
||||
if ((String) request.getSession(true).getAttribute("account") != null && discordAccounts.containsKey((String) request.getSession(true).getAttribute("account"))) {
|
||||
Map m = discordAccounts.get((String) request.getSession(true).getAttribute("account"));
|
||||
@@ -106,6 +128,11 @@ public class DiscordAccountHandler {
|
||||
m.put("embed", new WebGuild());
|
||||
}
|
||||
|
||||
//Add to embed map...
|
||||
UUID embedKey = UUID.randomUUID();
|
||||
request.getSession(true).setAttribute("embed", embedKey.toString());
|
||||
embedMaps.put(embedKey.toString(), m);
|
||||
|
||||
return m;
|
||||
} else {
|
||||
//Not logged in...
|
||||
@@ -133,6 +160,11 @@ public class DiscordAccountHandler {
|
||||
m.put("embed", new WebGuild());
|
||||
}
|
||||
|
||||
//Add to embed map...
|
||||
UUID embedKey = UUID.randomUUID();
|
||||
request.getSession(true).setAttribute("embed", embedKey.toString());
|
||||
embedMaps.put(embedKey.toString(), m);
|
||||
|
||||
return m;
|
||||
}
|
||||
}
|
||||
@@ -174,9 +206,13 @@ public class DiscordAccountHandler {
|
||||
}
|
||||
|
||||
public void removeAccount(HttpServletRequest request) {
|
||||
if ((String) request.getSession(true).getAttribute("account") != null && hasAccount(request)) {
|
||||
if ((String) request.getSession(true).getAttribute("account") != null && hasAccount(request))
|
||||
discordAccounts.remove((String) request.getSession(true).getAttribute("account"));
|
||||
}
|
||||
}
|
||||
|
||||
public void removeEmbedMap(HttpServletRequest request) {
|
||||
if ((String) request.getSession(true).getAttribute("embed") != null && hasEmbedMap(request))
|
||||
embedMaps.remove((String) request.getSession(true).getAttribute("embed"));
|
||||
}
|
||||
|
||||
private void removeTimedOutAccounts() {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
var calendar = {
|
||||
guildId: 0,
|
||||
todaysDate: new Date(),
|
||||
selectedDate: new Date(),
|
||||
displays: []
|
||||
@@ -147,7 +146,6 @@ function getEventsForMonth() {
|
||||
|
||||
|
||||
var bodyRaw = {
|
||||
"guild_id": calendar.guildId.toString(),
|
||||
"DaysInMonth": daysInMonth().toString(),
|
||||
"StartEpoch": ds.getTime().toString()
|
||||
};
|
||||
@@ -190,7 +188,6 @@ function getEventsForSelectedDate() {
|
||||
|
||||
|
||||
var bodyRaw = {
|
||||
"guild_id": calendar.guildId,
|
||||
"DaysInMonth": daysInMonth().toString(),
|
||||
"StartEpoch": ds.getTime().toString()
|
||||
};
|
||||
@@ -531,9 +528,7 @@ function selectDate(clickedId) {
|
||||
}
|
||||
}
|
||||
|
||||
function init(guildId) {
|
||||
calendar.guildId = parseInt(guildId);
|
||||
|
||||
function init() {
|
||||
setMonth({date: calendar.todaysDate});
|
||||
|
||||
getEventsForMonth();
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
integrity="sha256-lnJeulOa3e5IO2EzHr8jKJ3CbT80MBwkS5a+n2ooIr4=" crossorigin="anonymous"></script>
|
||||
</head>
|
||||
|
||||
<body th:onload="'init(' + ${embed.id} + ')'">
|
||||
<body onload="init()">
|
||||
<div class="top-nav">
|
||||
<a href="/" class="title"><h1>DISCAL</h1></a>
|
||||
<a href="/about">About</a>
|
||||
|
||||
Reference in New Issue
Block a user