diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java index b4e4e31..97ac423 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java @@ -29,20 +29,21 @@ public class SauceCommand extends YoshiCommand { sendErrorMessage("Dieser Kanal is nix gut, weil vong nsfw her. Geh woanders hin du kek"); return true; } - List arguments = Arrays.asList(context.getArgument("tags").split(" ")); - try { - arguments.stream().map(Integer::parseInt).map(this::byIndex).forEach(this::sendCustomMessage); - } catch (Exception e) { - sendCustomMessage(byTags(arguments)); + if (context.getArgument("tags") != null) { + sendCustomMessage(byTags(Arrays.asList(context.getArgument("tags").split(" ")))); + return true; + } else if (context.getArgument("id") != null) { + sendCustomMessage(byIndex(Integer.parseInt(context.getArgument("id")))); + return true; } - return true; + return false; } private MessageEmbed byIndex(int index) { return SauceProvider.getSauce(index); } - private MessageEmbed byTags(List tags){ + private MessageEmbed byTags(List tags) { return SauceProvider.getRandomSauce(String.join(" ", tags)); } } diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java index 138b473..b217e9a 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java @@ -79,6 +79,19 @@ public final class SauceProvider { private static MessageEmbed makeStringFromJson(JSONObject post) { EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Soße").setDescription("URL: " + post.getString("file_url").substring(42)); + String tags = "`" + post.getJSONArray("tags").join("` `") + "`"; + if (tags.length() > 1024) { + List tagParts = new ArrayList<>(); + while (tags.length() > 1024) { + int lastindexoftag = tags.substring(0, 1024).lastIndexOf(' '); + tagParts.add(tags.substring(0, lastindexoftag)); + tags = tags.substring(lastindexoftag + 1); + } + tagParts.add(tags); + tagParts.forEach(tagPart -> eb.addField("Tags:", tagPart, false)); + } else { + eb.addField("Tags", tags, false); + } eb.addField("ID", post.getString("id"), false); eb.setImage(post.getString("file_url").substring(42));