Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
*/
public final class SuggestionsUpDownVoter extends MessageReceiverAdapter {
private static final Logger logger = LoggerFactory.getLogger(SuggestionsUpDownVoter.class);
private static final int TITLE_MAX_LENGTH = 60;
private static final Emoji FALLBACK_UP_VOTE = Emoji.fromUnicode("👍");
private static final Emoji FALLBACK_DOWN_VOTE = Emoji.fromUnicode("👎");

Expand Down Expand Up @@ -55,19 +54,10 @@ public void onMessageReceived(MessageReceivedEvent event) {
}

private static void createThread(Message message) {
String title = message.getContentRaw();
ThreadTitle threadTitle = ThreadTitle.withFallback(message.getContentRaw(),
message.getAuthor().getName() + "'s suggestions");

if (title.length() >= TITLE_MAX_LENGTH) {
int lastWordEnd = title.lastIndexOf(' ', TITLE_MAX_LENGTH);

if (lastWordEnd == -1) {
lastWordEnd = TITLE_MAX_LENGTH;
}

title = title.substring(0, lastWordEnd);
}

message.createThreadChannel(title).queue();
message.createThreadChannel(threadTitle.value()).queue();
}

private static void reactWith(String emojiName, Emoji fallbackEmoji, Guild guild,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

package org.togetherjava.tjbot.features.basic;

public record ThreadTitle(String value) {

private static final int TITLE_MAX_LENGTH = 60;

public ThreadTitle(String value) {
String threadTitle;
if (value.length() >= TITLE_MAX_LENGTH) {
int lastWordEnd = value.lastIndexOf(' ', TITLE_MAX_LENGTH);

if (lastWordEnd == -1) {
lastWordEnd = TITLE_MAX_LENGTH;
}

threadTitle = value.substring(0, lastWordEnd);
} else {
threadTitle = value;
}

this.value = threadTitle;
}

public static ThreadTitle withFallback(String threadtitle, String fallback) {
if (!threadtitle.isEmpty()) {
return new ThreadTitle(threadtitle);
} else {
return new ThreadTitle(fallback);
}
}

@Override
public String toString() {
return value;
}

}
Loading