aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/juick/util/MessageUtils.java9
-rw-r--r--src/test/java/com/juick/MessageTest.java13
2 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/com/juick/util/MessageUtils.java b/src/main/java/com/juick/util/MessageUtils.java
index 72c9bd04..dd9db293 100644
--- a/src/main/java/com/juick/util/MessageUtils.java
+++ b/src/main/java/com/juick/util/MessageUtils.java
@@ -144,12 +144,11 @@ public class MessageUtils {
}
public static String formatMessage(String msg) {
+
msg = msg.replaceAll("&", "&");
msg = msg.replaceAll("<", "&lt;");
msg = msg.replaceAll(">", "&gt;");
- // > citate
- msg = msg.replaceAll(citateRegex, "<q>$1</q>");
- msg = msg.replaceAll("</q><q>", "\n");
+
// --
// &mdash;
msg = msg.replaceAll("((?<=\\s)|(?<=\\A))\\-\\-?((?=\\s)|(?=\\Z))", "$1&mdash;$2");
@@ -207,6 +206,10 @@ public class MessageUtils {
m.appendTail(sb);
msg = sb.toString();
+ // > citate
+ msg = msg.replaceAll(citateRegex, "<q>$1</q>");
+ msg = msg.replaceAll("</q><q>", "\n");
+
msg = msg.replaceAll("\n", "<br/>\n");
return msg;
}
diff --git a/src/test/java/com/juick/MessageTest.java b/src/test/java/com/juick/MessageTest.java
index 0b48efa1..eabeeb0f 100644
--- a/src/test/java/com/juick/MessageTest.java
+++ b/src/test/java/com/juick/MessageTest.java
@@ -214,5 +214,18 @@ public class MessageTest {
assertThat(MessageUtils.formatMessage(brokenComment), is("&lt;!-- read next"));
String url = "[ya](http://ya.ru)";
assertThat(MessageUtils.formatMessage(url), is("<a href=\"http://ya.ru\" rel=\"nofollow\">ya</a>"));
+ String complexMessage = "У футболистов нет мозгов. Что в России, что в Беларуси:\n" +
+ "\n" +
+ ">Отец футболиста Лухвича, объехавшего пробку по тротуару: «Сына задержали, Infiniti арестовали» https://auto.onliner.by/2019/01/23/probka-9\n" +
+ "\n" +
+ "Вкратце: малолетний долбоёб ездил по встрече, по тротуарам, парковался где хотел и всё это выкладывал в сеть, мол, хули вы мне сделоете. Сделали. Ибо нехуй.";
+ String formattedMessage = "У футболистов нет мозгов. Что в России, что в Беларуси:<br/>\n<br/>\n" +
+ "<q>Отец футболиста Лухвича, объехавшего пробку по тротуару: «Сына задержали, Infiniti арестовали» <a href=\"https://auto.onliner.by/2019/01/23/probka-9\" rel=\"nofollow\">auto.onliner.by</a></q>" +
+ "<br/>\n" +
+ "Вкратце: малолетний долбоёб ездил по встрече, по тротуарам, парковался где хотел и всё это выкладывал в сеть, мол, хули вы мне сделоете. Сделали. Ибо нехуй.";
+
+ assertThat(MessageUtils.formatMessage(complexMessage), is(formattedMessage));
+ String multiQuote = "> quote line 1\n> quote line 2\nmessage";
+ assertThat(MessageUtils.formatMessage(multiQuote), is("<q>quote line 1<br/>\nquote line 2</q>message"));
}
}