Skip to content

Commit 0a366ef

Browse files
committed
pr comments
1 parent 641299c commit 0a366ef

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

application/src/main/java/org/togetherjava/tjbot/commands/filesharing/FileSharingMessageListener.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
1010
import net.dv8tion.jda.api.interactions.components.buttons.Button;
1111
import org.jetbrains.annotations.NotNull;
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
1214
import org.togetherjava.tjbot.commands.MessageReceiverAdapter;
1315
import org.togetherjava.tjbot.config.Config;
1416

@@ -34,6 +36,7 @@
3436
*/
3537
public class FileSharingMessageListener extends MessageReceiverAdapter {
3638

39+
private static final Logger LOGGER = LoggerFactory.getLogger(FileSharingMessageListener.class);
3740
private static final ObjectMapper JSON = new ObjectMapper();
3841

3942
private static final String SHARE_API = "https://api.github.com/gists";
@@ -75,7 +78,13 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) {
7578
.filter(this::isAttachmentRelevant)
7679
.toList();
7780

78-
CompletableFuture.runAsync(() -> processAttachments(event, attachments));
81+
CompletableFuture.runAsync(() -> {
82+
try {
83+
processAttachments(event, attachments);
84+
} catch (Exception e) {
85+
LOGGER.error("Unknown error while processing attachments", e);
86+
}
87+
});
7988
}
8089

8190
private boolean isAttachmentRelevant(@NotNull Message.Attachment attachment) {
@@ -90,21 +99,21 @@ private boolean isAttachmentRelevant(@NotNull Message.Attachment attachment) {
9099
private void processAttachments(@NotNull MessageReceivedEvent event,
91100
@NotNull List<Message.Attachment> attachments) {
92101

93-
Map<String, GistFile> filesAsJson = new ConcurrentHashMap<>();
102+
Map<String, GistFile> nameToFile = new ConcurrentHashMap<>();
94103

95104
List<CompletableFuture<Void>> tasks = new ArrayList<>();
96105
for (Message.Attachment attachment : attachments) {
97106
CompletableFuture<Void> task = attachment.retrieveInputStream()
98107
.thenApply(this::readAttachment)
99108
.thenAccept(
100-
content -> filesAsJson.put(getNameOf(attachment), new GistFile(content)));
109+
content -> nameToFile.put(getNameOf(attachment), new GistFile(content)));
101110

102111
tasks.add(task);
103112
}
104113

105114
tasks.forEach(CompletableFuture::join);
106115

107-
GistFiles files = new GistFiles(filesAsJson);
116+
GistFiles files = new GistFiles(nameToFile);
108117
GistRequest request = new GistRequest(event.getAuthor().getName(), false, files);
109118
String url = uploadToGist(request);
110119
sendResponse(event, url);
@@ -128,7 +137,13 @@ private void processAttachments(@NotNull MessageReceivedEvent event,
128137
fileExtension = "xml";
129138
}
130139

131-
fileName = fileName.substring(0, fileName.lastIndexOf(".")) + "." + fileExtension;
140+
int extensionIndex = fileName.lastIndexOf('.');
141+
if (extensionIndex != -1) {
142+
fileName = fileName.substring(0, extensionIndex);
143+
}
144+
145+
fileName += "." + fileExtension;
146+
132147
return fileName;
133148
}
134149

0 commit comments

Comments
 (0)