aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/util')
-rw-r--r--src/main/java/com/juick/util/MessageUtils.java26
-rw-r--r--src/main/java/com/juick/util/xmpp/JidConverter.java3
2 files changed, 19 insertions, 10 deletions
diff --git a/src/main/java/com/juick/util/MessageUtils.java b/src/main/java/com/juick/util/MessageUtils.java
index 42c97d84..ee6ff772 100644
--- a/src/main/java/com/juick/util/MessageUtils.java
+++ b/src/main/java/com/juick/util/MessageUtils.java
@@ -42,13 +42,20 @@ public class MessageUtils {
}
public static String formatQuote(final String quote) {
+ return formatQuote(quote, false);
+ }
+
+ public static String formatQuote(final String quote, final boolean isHtml) {
String result = quote;
+ var prefix = isHtml ? "<blockquote>" : ">";
+ var suffix = isHtml ? "</blockquote>" : "\n";
+
if (quote != null) {
if (quote.length() > 50) {
- result = ">" + StringUtils.abbreviate(quote, "…", 47).replace('\n', ' ') + "\n";
+ result = prefix + StringUtils.abbreviate(quote, "…", 47).replace('\n', ' ') + suffix;
} else if (!quote.isEmpty()) {
- result = ">" + quote.replace('\n', ' ') + "\n";
+ result = prefix + quote.replace('\n', ' ') + suffix;
}
}
@@ -57,7 +64,7 @@ public class MessageUtils {
private final static String urlWhiteSpacePrefix = "((?<=\\s)|(?<=\\A))";
- private final static String urlRegex = "((?:ht|f)tps?://(?:www\\.)?([^\\/\\s\\n\\\"]+)/?[^\\]\\s\\n\\\"\\>]*)";
+ private final static String urlRegex = "((?:(?:ht|f)tps?://(?:www\\.)?([^\\s()<>/?#]+)([^\\s()<>«»]*)?))";
private final static String urlWithWhitespacesRegex =
urlWhiteSpacePrefix + urlRegex;
@@ -191,8 +198,9 @@ public class MessageUtils {
// /12
// <a href="#12">/12</a>
- msg = msg.replaceAll(replyNumberRegex, "$1<a href=\"#$2\">/$2</a>$3");
-
+ if (!compatibleWithDurov) {
+ msg = msg.replaceAll(replyNumberRegex, "$1<a href=\"#$2\">/$2</a>$3");
+ }
// @username@mastodon.social
// <a href="http://juick.com/mention?username=username@mastodon.social/">@username@mastodon.social</a>
@@ -220,11 +228,11 @@ public class MessageUtils {
m.appendTail(sb);
msg = sb.toString();
+
+ // > citate
+ msg = msg.replaceAll(citateRegex, "<blockquote>$1</blockquote>");
+ msg = msg.replaceAll("</blockquote><blockquote>", "\n");
if (!compatibleWithDurov) {
- // > citate
- msg = msg.replaceAll(citateRegex, "<blockquote>$1</blockquote>");
- msg = msg.replaceAll("</blockquote><blockquote>", "\n");
-
msg = msg.replaceAll("\n", "<br/>\n");
}
return msg;
diff --git a/src/main/java/com/juick/util/xmpp/JidConverter.java b/src/main/java/com/juick/util/xmpp/JidConverter.java
index 4f457164..5c40d470 100644
--- a/src/main/java/com/juick/util/xmpp/JidConverter.java
+++ b/src/main/java/com/juick/util/xmpp/JidConverter.java
@@ -18,13 +18,14 @@
package com.juick.util.xmpp;
import org.springframework.core.convert.converter.Converter;
+import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import rocks.xmpp.addr.Jid;
public class JidConverter implements Converter<String, Jid> {
@Nullable
@Override
- public Jid convert(String jidStr) {
+ public Jid convert(@NonNull String jidStr) {
return Jid.of(jidStr);
}
}