Hide post selftext if it contains spoiler in post feed.

This commit is contained in:
Alex Ning 2021-04-10 22:54:12 +08:00
parent 16014a8807
commit 75c9a52cf7

View File

@ -12,6 +12,8 @@ import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import ml.docilealligator.infinityforreddit.postfilter.PostFilter; import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
import ml.docilealligator.infinityforreddit.readpost.ReadPost; import ml.docilealligator.infinityforreddit.readpost.ReadPost;
@ -176,7 +178,8 @@ public class ParsePost {
if (data.isNull(JSONUtils.SELFTEXT_KEY)) { if (data.isNull(JSONUtils.SELFTEXT_KEY)) {
post.setSelfText(""); post.setSelfText("");
} else { } else {
post.setSelfText(Utils.modifyMarkdown(data.getString(JSONUtils.SELFTEXT_KEY).trim())); String selfText = Utils.modifyMarkdown(data.getString(JSONUtils.SELFTEXT_KEY).trim());
post.setSelfText(selfText);
if (data.isNull(JSONUtils.SELFTEXT_HTML_KEY)) { if (data.isNull(JSONUtils.SELFTEXT_HTML_KEY)) {
post.setSelfTextPlainTrimmed(""); post.setSelfTextPlainTrimmed("");
} else { } else {
@ -186,8 +189,18 @@ public class ParsePost {
if (selfTextPlain.length() > 250) { if (selfTextPlain.length() > 250) {
selfTextPlain = selfTextPlain.substring(0, 250); selfTextPlain = selfTextPlain.substring(0, 250);
} }
if (!selfText.equals("")) {
Pattern p = Pattern.compile(">!.+!<");
Matcher m = p.matcher(selfText.substring(0, Math.min(selfText.length(), 400)));
if (m.find()) {
post.setSelfTextPlainTrimmed("");
} else {
post.setSelfTextPlainTrimmed(selfTextPlain); post.setSelfTextPlainTrimmed(selfTextPlain);
} }
} else {
post.setSelfTextPlainTrimmed(selfTextPlain);
}
}
} }
} else { } else {
if (url.endsWith("jpg") || url.endsWith("png")) { if (url.endsWith("jpg") || url.endsWith("png")) {
@ -320,7 +333,8 @@ public class ParsePost {
if (data.isNull(JSONUtils.SELFTEXT_KEY)) { if (data.isNull(JSONUtils.SELFTEXT_KEY)) {
post.setSelfText(""); post.setSelfText("");
} else { } else {
post.setSelfText(Utils.modifyMarkdown(data.getString(JSONUtils.SELFTEXT_KEY).trim())); String selfText = Utils.modifyMarkdown(data.getString(JSONUtils.SELFTEXT_KEY).trim());
post.setSelfText(selfText);
if (data.isNull(JSONUtils.SELFTEXT_HTML_KEY)) { if (data.isNull(JSONUtils.SELFTEXT_HTML_KEY)) {
post.setSelfTextPlainTrimmed(""); post.setSelfTextPlainTrimmed("");
} else { } else {
@ -330,8 +344,18 @@ public class ParsePost {
if (selfTextPlain.length() > 250) { if (selfTextPlain.length() > 250) {
selfTextPlain = selfTextPlain.substring(0, 250); selfTextPlain = selfTextPlain.substring(0, 250);
} }
if (!selfText.equals("")) {
Pattern p = Pattern.compile(">!.+!<");
Matcher m = p.matcher(selfText.substring(0, Math.min(selfText.length(), 400)));
if (m.find()) {
post.setSelfTextPlainTrimmed("");
} else {
post.setSelfTextPlainTrimmed(selfTextPlain); post.setSelfTextPlainTrimmed(selfTextPlain);
} }
} else {
post.setSelfTextPlainTrimmed(selfTextPlain);
}
}
} }
} else { } else {
//Link post //Link post