Browse Source

Fix too much tags issue

master
Paul Glaß 4 years ago
parent
commit
306315f9a9
2 changed files with 21 additions and 7 deletions
  1. +8
    -7
      app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java
  2. +13
    -0
      app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java

+ 8
- 7
app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SauceCommand.java View File

@ -29,20 +29,21 @@ public class SauceCommand extends YoshiCommand {
sendErrorMessage("Dieser Kanal is nix gut, weil vong nsfw her. Geh woanders hin du kek"); sendErrorMessage("Dieser Kanal is nix gut, weil vong nsfw her. Geh woanders hin du kek");
return true; return true;
} }
List<String> 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) { private MessageEmbed byIndex(int index) {
return SauceProvider.getSauce(index); return SauceProvider.getSauce(index);
} }
private MessageEmbed byTags(List<String> tags){
private MessageEmbed byTags(List<String> tags) {
return SauceProvider.getRandomSauce(String.join(" ", tags)); return SauceProvider.getRandomSauce(String.join(" ", tags));
} }
} }

+ 13
- 0
app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java View File

@ -79,6 +79,19 @@ public final class SauceProvider {
private static MessageEmbed makeStringFromJson(JSONObject post) { private static MessageEmbed makeStringFromJson(JSONObject post) {
EmbedBuilder eb = new EmbedBuilder(); EmbedBuilder eb = new EmbedBuilder();
eb.setTitle("Soße").setDescription("URL: " + post.getString("file_url").substring(42)); eb.setTitle("Soße").setDescription("URL: " + post.getString("file_url").substring(42));
String tags = "`" + post.getJSONArray("tags").join("` `") + "`";
if (tags.length() > 1024) {
List<String> 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.addField("ID", post.getString("id"), false);
eb.setImage(post.getString("file_url").substring(42)); eb.setImage(post.getString("file_url").substring(42));


Loading…
Cancel
Save