From e53143bd64cd1e9a0a10a6150342a3b9651d2d8b Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Wed, 29 Jun 2022 18:22:58 -0400 Subject: [PATCH 1/6] Automated the token selection process. --- src/main/java/dev/salmonllama/fsbot/Main.java | 12 +++++++++++- .../dev/salmonllama/fsbot/config/SecretManager.java | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/Main.java b/src/main/java/dev/salmonllama/fsbot/Main.java index 27acc71..3a65bf9 100644 --- a/src/main/java/dev/salmonllama/fsbot/Main.java +++ b/src/main/java/dev/salmonllama/fsbot/Main.java @@ -28,7 +28,17 @@ public class Main { FSDB.init(); - new DiscordApiBuilder().setToken(SecretManager.DISCORD_TOKEN.getPlainText()).login().thenAccept(api -> { + String token; + if (System.getenv("ENVIRONMENT") != null) + { + token = SecretManager.DISCORD_TOKEN_PROD.getPlainText(); + } + else + { + token = SecretManager.DISCORD_TOKEN.getPlainText(); + } + + new DiscordApiBuilder().setToken(token).login().thenAccept(api -> { @SuppressWarnings("unused") Guthix guthix = new Guthix(api); diff --git a/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java b/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java index 00226ac..8a8f2c2 100644 --- a/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java +++ b/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java @@ -6,6 +6,7 @@ import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; public enum SecretManager { DISCORD_TOKEN ("projects/fashionscapers-212707/secrets/fs_discord_token/versions/1"), + DISCORD_TOKEN_PROD ("projects/fashionscapers-212707/secrets/fs_discord_token_prod/versions/1"), IMGUR_ID ("projects/fashionscapers-212707/secrets/fs_imgur_client_id/versions/1"), IMGUR_BEARER ("projects/fashionscapers-212707/secrets/fs_imgur_bearer_token/versions/1") ; From 49431d6deee8ee1079b5140fa52711ea4f18fa77 Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Wed, 29 Jun 2022 21:27:47 -0400 Subject: [PATCH 2/6] Add support for discord_name in the database backend. --- .../fsbot/database/controllers/OutfitController.java | 8 ++++++-- .../dev/salmonllama/fsbot/database/models/Outfit.java | 2 +- .../dev/salmonllama/fsbot/listeners/ImageListener.java | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java b/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java index 6d0c8ef..a69a8d4 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java +++ b/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java @@ -232,13 +232,14 @@ public class OutfitController { FSDB.get().insert( "INSERT INTO " + - "outfits('id', 'link', 'submitter', 'tag', 'meta', 'created', 'updated', 'deleted', 'featured', 'display_count', 'delete_hash') " + - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + "outfits('id', 'link', 'submitter', 'tag', 'meta', 'discord_name', 'created', 'updated', 'deleted', 'featured', 'display_count', 'delete_hash') " + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", outfit.getId(), outfit.getLink(), outfit.getSubmitter(), outfit.getTag(), outfit.getMeta(), + outfit.getDiscordName(), outfit.getCreated(), outfit.getUpdated(), outfit.isDeleted(), @@ -372,6 +373,7 @@ public class OutfitController { "submitter = ?," + "tag = ?," + "meta = ?," + + "discord_name = ?," + "updated = ?," + "featured = ?," + "deleted = ?," + @@ -381,6 +383,7 @@ public class OutfitController { outfit.getSubmitter(), outfit.getTag(), outfit.getMeta(), + outfit.getDiscordName(), outfit.getUpdated(), outfit.isFeatured(), outfit.isDeleted(), @@ -429,6 +432,7 @@ public class OutfitController { .setSubmitter(rs.getString("submitter")) .setTag(rs.getString("tag")) .setMeta(rs.getString("meta")) + .setDiscordName(rs.getString("discord_name")) .setCreated(new Timestamp(rs.getLong("created"))) .setUpdated(new Timestamp(rs.getLong("updated"))) .setDeleted(rs.getBoolean("deleted")) diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java index 1caea76..c091648 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java @@ -115,7 +115,7 @@ public class Outfit extends DatabaseModel { @Override public String toString() { - return String.format("Outfit: [id: %s, link: %s, submitter: %s, tag: %s, created: %s, updated: %s, deleted: %s, featured: %s, display count: %s, deletion hash: %s, meta: %s, discordName: %s]", + return String.format("Outfit: [id: %s, link: %s, submitter: %s, tag: %s, created: %s, updated: %s, deleted: %s, featured: %s, display count: %s, deletion hash: %s, meta: %s, discord_name: %s]", id, link, submitter, tag, created, updated, deleted, featured, displayCount, deleteHash, meta, discordName ); } diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java index d8dc9c8..b457b24 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java @@ -104,7 +104,7 @@ public class ImageListener implements MessageCreateListener { .setId(UUID.randomUUID().toString()) .setMeta(event.getMessageContent()) .setDiscordName(event.getMessageAuthor().getDiscriminatedName()) - .setLink("DUMMY-LINK") + .setLink(event.getMessageAttachments().get(0).getUrl().toString()) .setSubmitter(event.getMessageAuthor().getIdAsString()) .setDeleteHash("DUMMY-DELETE-HASH"); @@ -126,7 +126,8 @@ public class ImageListener implements MessageCreateListener { .setFooter(String.format("%s | %s", outfit.getTag(), outfit.getId())) .setUrl(outfit.getLink()) .setColor(Color.GREEN) - .addField("Uploaded:", outfit.getCreated().toString()); + .addField("Uploaded:", outfit.getCreated().toString()) + .addField("Discord Name:", outfit.getDiscordName()); if (!outfit.getMeta().equals("")) { response.addField("Meta:", outfit.getMeta()); From 5e94eee82ff4927b6c2eb58afe4958d2dab4ad7c Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Wed, 29 Jun 2022 21:28:18 -0400 Subject: [PATCH 3/6] update copyright? idk man my IDE did this automatically. --- src/main/java/dev/salmonllama/fsbot/config/SecretManager.java | 4 ++++ src/main/java/dev/salmonllama/fsbot/database/models/Role.java | 3 +-- .../java/dev/salmonllama/fsbot/database/models/RoleGroup.java | 4 ++++ src/main/java/dev/salmonllama/fsbot/services/IdService.java | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java b/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java index 8a8f2c2..f223f77 100644 --- a/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java +++ b/src/main/java/dev/salmonllama/fsbot/config/SecretManager.java @@ -1,3 +1,7 @@ +/* + * Copyright (c) 2021 Aleksei Gryczewski + */ + package dev.salmonllama.fsbot.config; import java.io.IOException; diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/Role.java b/src/main/java/dev/salmonllama/fsbot/database/models/Role.java index e310fb5..624019e 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/Role.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/Role.java @@ -1,6 +1,5 @@ /* - * Copyright (c) 2020. Aleksei Gryczewski - * All rights reserved. + * Copyright (c) 2021 Aleksei Gryczewski */ package dev.salmonllama.fsbot.database.models; diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/RoleGroup.java b/src/main/java/dev/salmonllama/fsbot/database/models/RoleGroup.java index 1ac12d5..64213fa 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/RoleGroup.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/RoleGroup.java @@ -1,3 +1,7 @@ +/* + * Copyright (c) 2021 Aleksei Gryczewski + */ + package dev.salmonllama.fsbot.database.models; import dev.salmonllama.fsbot.database.DatabaseModel; diff --git a/src/main/java/dev/salmonllama/fsbot/services/IdService.java b/src/main/java/dev/salmonllama/fsbot/services/IdService.java index 6c90768..5f77ca0 100644 --- a/src/main/java/dev/salmonllama/fsbot/services/IdService.java +++ b/src/main/java/dev/salmonllama/fsbot/services/IdService.java @@ -1,3 +1,7 @@ +/* + * Copyright (c) 2021 Aleksei Gryczewski + */ + package dev.salmonllama.fsbot.services; import java.util.UUID; From a21b3471e1f358d47b1f539a3d26b6f5b808f880 Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Wed, 29 Jun 2022 21:28:38 -0400 Subject: [PATCH 4/6] Add TODO because Lisa broke this immediately. --- .../fsbot/commands/developer/CreateGalleryCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java index 198bedc..21c8883 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java @@ -35,6 +35,7 @@ public class CreateGalleryCommand extends Command { } String[] args = ctx.getArgs(); + // TODO: Check if the tag already exists // Check if the channel is already a registered gallery channel. // Create a gallery channel of the current channel. // Store the gallery channel in the database. From 18be26d5ca97fd0a2316399e107683c2db86d8a0 Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Wed, 29 Jun 2022 21:56:26 -0400 Subject: [PATCH 5/6] Added temporary bot-log redirect for zammy event --- .../fsbot/commands/staff/EditMetaCommand.java | 9 +++++ .../commands/staff/RemoveOutfitCommand.java | 9 +++++ .../commands/staff/RestoreOutfitCommand.java | 9 +++++ .../fsbot/commands/staff/RetagCommand.java | 9 +++++ .../salmonllama/fsbot/config/BotConfig.java | 3 ++ .../fsbot/listeners/ImageListener.java | 37 +++++++++++++++++++ 6 files changed, 76 insertions(+) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java index c8a8c8c..c2c9ffe 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java @@ -77,6 +77,15 @@ public class EditMetaCommand extends Command { .setColor(Color.YELLOW) .addField("Edited By:", ctx.getAuthor().getDiscriminatedName()); + // TODO: START ZAMMY + if (outfit.getTag().equals("zammy")) + { + ctx.getApi().getServerTextChannelById(BotConfig.ZAMMY_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + } + // TODO: END ZAMMY + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( chnl -> chnl.sendMessage(log) ); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index 2e1b4c4..5e9dd0d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -77,6 +77,15 @@ public class RemoveOutfitCommand extends Command { .setColor(Color.RED) .addField("Deleted By:", ctx.getAuthor().getDiscriminatedName()); + // TODO: START ZAMMY + if (outfit.getTag().equals("zammy")) + { + ctx.getApi().getServerTextChannelById(BotConfig.ZAMMY_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + } + // TODO: END ZAMMY + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( chnl -> chnl.sendMessage(log) ); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java index 689488f..bb8d23c 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java @@ -78,6 +78,15 @@ public class RestoreOutfitCommand extends Command { .setColor(Color.BLUE) .addField("Restored By:", ctx.getAuthor().getDiscriminatedName()); + // TODO: START ZAMMY + if (outfit.getTag().equals("zammy")) + { + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + } + // TODO: END ZAMMY + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( chnl -> chnl.sendMessage(log) ); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java index a798625..ba3a1ea 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java @@ -81,6 +81,15 @@ public class RetagCommand extends Command { .setThumbnail(outfit.getLink()) .addField("New tag:", newTag); + // TODO: START ZAMMY + if (outfit.getTag().equals("zammy")) + { + ctx.getApi().getServerTextChannelById(BotConfig.ZAMMY_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + } + // TODO: END ZAMMY + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( chnl -> chnl.sendMessage(log) ); diff --git a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java index 4fba42f..b73dd74 100644 --- a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java +++ b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java @@ -56,6 +56,9 @@ public class BotConfig { @ConfigurationOption public static String OUTFIT_LOG = "outfit log channel"; + @ConfigurationOption + public static String ZAMMY_LOG = "zammy log here"; + @ConfigurationOption public static String ACTIVITY_LOG = "bot_log_channel"; diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java index b457b24..2a26893 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java @@ -118,6 +118,43 @@ public class ImageListener implements MessageCreateListener { OutfitController.insert(outfit).thenAcceptAsync((Void) -> { // Log the outfit + + // TODO: START ZAMMY LOG + if (outfit.getTag().equals("zammy")) + { + event.getApi().getServerTextChannelById(BotConfig.ZAMMY_LOG).ifPresentOrElse(chnl -> + { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Outfit Added") + .setAuthor(event.getMessageAuthor()) + .setThumbnail(outfit.getLink()) + .setFooter(String.format("%s | %s", outfit.getTag(), outfit.getId())) + .setUrl(outfit.getLink()) + .setColor(Color.GREEN) + .addField("Uploaded:", outfit.getCreated().toString()) + .addField("Discord Name:", outfit.getDiscordName()); + + if (!outfit.getMeta().equals("")) { + response.addField("Meta:", outfit.getMeta()); + } + + chnl.sendMessage(response); + logger.info(String.format("Outfit from %s successfully added to the zammy event.", event.getMessageAuthor().getDiscriminatedName())); + + // Add the reaction to the original message + GalleryController.getEmoji(channel.getIdAsString()).thenAcceptAsync( + emoji -> event.getMessage().addReaction(EmojiParser.parseToUnicode(emoji)) + ).exceptionally(ExceptionLogger.get()); + }, () -> + { + // Fallback error message to me + event.getApi().getUserById(BotConfig.BOT_OWNER).thenAcceptAsync( + user -> user.sendMessage("Could not find OUTFIT LOG") + ); + }); + } + // TODO: END ZAMMY LOG + event.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresentOrElse(chnl -> { EmbedBuilder response = new EmbedBuilder() .setTitle("Outfit Added") From 7c2576623e015d2f82e40345c51c7fe8ef55f403 Mon Sep 17 00:00:00 2001 From: Alex G Date: Sun, 3 Jul 2022 21:34:11 -0400 Subject: [PATCH 6/6] Fix typo preventing zammy restorations logging successfully --- .../salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java index bb8d23c..6ab4e2e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RestoreOutfitCommand.java @@ -81,7 +81,7 @@ public class RestoreOutfitCommand extends Command { // TODO: START ZAMMY if (outfit.getTag().equals("zammy")) { - ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( + ctx.getApi().getServerTextChannelById(BotConfig.ZAMMY_LOG).ifPresent( chnl -> chnl.sendMessage(log) ); }