Skip to content

Commit 0590b36

Browse files
refactor method for generating title of forum post (#932)
* refactor method for generating title of forum post * Update application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java Co-authored-by: Daniel Tischner <[email protected]> --------- Co-authored-by: Daniel Tischner <[email protected]>
1 parent 82df6ee commit 0590b36

1 file changed

Lines changed: 10 additions & 11 deletions

File tree

application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,9 @@ public final class TransferQuestionCommand extends BotCommandAdapter
3939
private static final String MODAL_TITLE_ID = "transferID";
4040
private static final String MODAL_INPUT_ID = "transferQuestion";
4141
private static final String MODAL_TAG = "tags";
42-
private static final int TITLE_GUESS_MAX_LENGTH = 50;
42+
private static final int TITLE_MAX_LENGTH = 50;
4343
private static final Pattern TITLE_GUESS_COMPACT_REMOVAL_PATTERN = Pattern.compile("\\W");
44-
private static final int TITLE_GUESS_COMPACT_LENGTH_MIN = 2;
45-
private static final int TITLE_GUESS_COMPACT_LENGTH_MAX = 30;
44+
private static final int TITLE_MIN_LENGTH = 3;
4645
private static final Color EMBED_COLOR = new Color(50, 164, 168);
4746
private final Predicate<String> isHelpForumName;
4847
private final List<String> tags;
@@ -76,8 +75,8 @@ public void onMessageContext(MessageContextInteractionEvent event) {
7675
String mostCommonTag = tags.get(0);
7776

7877
TextInput modalTitle = TextInput.create(MODAL_TITLE_ID, "Title", TextInputStyle.SHORT)
79-
.setMaxLength(70)
80-
.setMinLength(4)
78+
.setMaxLength(TITLE_MAX_LENGTH)
79+
.setMinLength(TITLE_MIN_LENGTH)
8180
.setPlaceholder("Describe the question in short")
8281
.setValue(createTitle(originalMessage))
8382
.build();
@@ -123,14 +122,14 @@ public void onModalSubmitted(ModalInteractionEvent event, List<String> args) {
123122
}
124123

125124
private static String createTitle(String message) {
126-
if (message.length() >= TITLE_GUESS_MAX_LENGTH) {
127-
int lastWordEnd = message.lastIndexOf(' ', TITLE_GUESS_MAX_LENGTH);
125+
if (message.length() >= TITLE_MAX_LENGTH) {
126+
int lastWordEnd = message.lastIndexOf(' ', TITLE_MAX_LENGTH);
128127

129128
if (lastWordEnd == -1) {
130-
lastWordEnd = TITLE_GUESS_MAX_LENGTH;
129+
lastWordEnd = TITLE_MAX_LENGTH;
131130
}
132131

133-
message = message.substring(0, lastWordEnd);
132+
message = message.substring(0, lastWordEnd).replace('\n', ' ');
134133
}
135134

136135
return isTitleValid(message) ? message : "Untitled";
@@ -139,8 +138,8 @@ private static String createTitle(String message) {
139138
private static boolean isTitleValid(CharSequence title) {
140139
String titleCompact = TITLE_GUESS_COMPACT_REMOVAL_PATTERN.matcher(title).replaceAll("");
141140

142-
return titleCompact.length() >= TITLE_GUESS_COMPACT_LENGTH_MIN
143-
&& titleCompact.length() <= TITLE_GUESS_COMPACT_LENGTH_MAX;
141+
return titleCompact.length() >= TITLE_MIN_LENGTH
142+
&& titleCompact.length() <= TITLE_MAX_LENGTH;
144143
}
145144

146145
private RestAction<ForumPost> createForumPost(ModalInteractionEvent event, User originalUser) {

0 commit comments

Comments
 (0)