This is an automated email from the ASF dual-hosted git repository. meonkeys pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/fineract-chat-archive.git
commit 40d1e82986fa3d9c2c4afc5c08eaee73c2f5c912 Author: Adam Monsen <[email protected]> AuthorDate: Wed Feb 11 11:02:14 2026 -0800 prefix threaded messages, bold usernames * prefix threaded messages with an arrow character "→ " * use Markdown bolding around usernames --- .../org/apache/fineract/chat/archive/ChatArchiveApp.java | 12 +++++------- .../org/apache/fineract/chat/archive/MarkdownRenderer.java | 9 ++++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java b/src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java index 5b9f5db..92d9c1e 100644 --- a/src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java +++ b/src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java @@ -271,18 +271,16 @@ public final class ChatArchiveApp { if (parentSet.contains(message.threadTs())) { continue; } - rows.add(toRow(message, channelId, token, slackApiClient, permalinkCache, - userCache, "-> ")); + rows.add(toRow(message, channelId, token, slackApiClient, permalinkCache, userCache)); continue; } - rows.add(toRow(message, channelId, token, slackApiClient, permalinkCache, userCache, - "")); + rows.add(toRow(message, channelId, token, slackApiClient, permalinkCache, userCache)); if (message.threadTs() != null && message.threadTs().equals(message.ts())) { List<SlackMessage> replies = resolveThreadReplies(channelId, message.threadTs(), repliesByParent, threadRepliesCache, slackApiClient, token); for (SlackMessage reply : replies) { rows.add(toRow(reply, channelId, token, slackApiClient, permalinkCache, - userCache, "-> ")); + userCache)); } } } @@ -291,7 +289,7 @@ public final class ChatArchiveApp { private static MarkdownRenderer.Row toRow(SlackMessage message, String channelId, String token, SlackApiClient slackApiClient, Map<String, String> permalinkCache, - Map<String, String> userCache, String prefix) { + Map<String, String> userCache) { Instant instant = SlackTimestamp.toInstant(message.ts()); String time = TIME_FORMATTER.format(instant.atZone(ZoneOffset.UTC)); String rfcTimedate = DateTimeFormatter.RFC_1123_DATE_TIME.format(instant.atZone(ZoneOffset.UTC)); @@ -300,7 +298,7 @@ public final class ChatArchiveApp { userId -> resolveUserDisplayName(userId, token, slackApiClient, userCache)); String permalink = resolvePermalink(channelId, message.ts(), token, slackApiClient, permalinkCache); - return new MarkdownRenderer.Row(time, rfcTimedate, user, prefix + text, permalink); + return new MarkdownRenderer.Row(isReply(message), time, rfcTimedate, user, text, permalink); } private static boolean isReply(SlackMessage message) { diff --git a/src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java b/src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java index ab1e78f..1465280 100644 --- a/src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java +++ b/src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java @@ -35,8 +35,11 @@ class MarkdownRenderer { for (int i = 0; i < rows.size(); i++) { Row row = rows.get(i); - builder.append(formatTimeCell(row)).append(" - ") - .append(normalize(row.user())).append(" - ") + if (row.isReply()) { + builder.append("→ "); + } + builder.append(formatTimeCell(row)).append(" **") + .append(normalize(row.user())).append("** ") .append(normalize(row.message())).append("\n"); if (i + 1 < rows.size()) { builder.append("\n"); @@ -85,6 +88,6 @@ class MarkdownRenderer { return value.replace("\r\n", "\n").replace("\r", "\n"); } - record Row(String timeAbbrev, String rfcDatetime, String user, String message, String permalink) { + record Row(boolean isReply, String timeAbbrev, String rfcDatetime, String user, String message, String permalink) { } }
