Commit 23e5551d authored by Liang Ding's avatar Liang Ding

🐛 图床上传相同图片后第二幅显示不出来 Fix #101

parent 8c5e81b2
...@@ -17,6 +17,9 @@ import org.apache.commons.lang.time.DateUtils; ...@@ -17,6 +17,9 @@ import org.apache.commons.lang.time.DateUtils;
import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -26,7 +29,7 @@ import java.util.concurrent.ThreadLocalRandom; ...@@ -26,7 +29,7 @@ import java.util.concurrent.ThreadLocalRandom;
* Image utilities. * Image utilities.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.1.0, Feb 27, 2020 * @version 1.1.2.0, Apr 12, 2020
* @since 2.7.0 * @since 2.7.0
*/ */
public final class Images { public final class Images {
...@@ -44,27 +47,25 @@ public final class Images { ...@@ -44,27 +47,25 @@ public final class Images {
/** /**
* Qiniu image processing. * Qiniu image processing.
* *
* @param html the specified content HTML * @param doc the specified doc
* @return processed content
*/ */
public static String qiniuImgProcessing(final String html) { public static void qiniuImgProcessing(final Document doc) {
String ret = html; final Elements imgs = doc.select("img");
final String[] imgSrcs = StringUtils.substringsBetween(html, "<img src=\"", "\""); if (imgs.isEmpty()) {
if (null == imgSrcs) { return;
return ret;
} }
for (final String imgSrc : imgSrcs) { for (final Element img : imgs) {
String imgSrc = img.attr("src");
if (!StringUtils.startsWith(imgSrc, COMMUNITY_FILE_URL) || if (!StringUtils.startsWith(imgSrc, COMMUNITY_FILE_URL) ||
StringUtils.contains(imgSrc, ".gif") || StringUtils.containsIgnoreCase(imgSrc, "imageView") || StringUtils.contains(imgSrc, ".gif") || StringUtils.containsIgnoreCase(imgSrc, "imageView") ||
StringUtils.containsIgnoreCase(imgSrc, "data:")) { StringUtils.containsIgnoreCase(imgSrc, "data:")) {
continue; continue;
} }
ret = StringUtils.replace(ret, imgSrc, imgSrc + "?imageView2/2/w/1280/format/jpg/interlace/1/q/100"); imgSrc += "?imageView2/2/w/1280/format/jpg/interlace/1/q/100";
img.attr("src", imgSrc);
} }
return ret;
} }
/** /**
......
...@@ -54,7 +54,7 @@ import java.util.concurrent.*; ...@@ -54,7 +54,7 @@ import java.util.concurrent.*;
* </p> * </p>
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 2.3.1.15, Jan 25, 2020 * @version 2.3.1.16, Apr 12, 2020
* @since 0.4.5 * @since 0.4.5
*/ */
public final class Markdowns { public final class Markdowns {
...@@ -225,10 +225,10 @@ public final class Markdowns { ...@@ -225,10 +225,10 @@ public final class Markdowns {
toRemove.forEach(Node::remove); toRemove.forEach(Node::remove);
doc.outputSettings().prettyPrint(false); doc.outputSettings().prettyPrint(false);
Images.qiniuImgProcessing(doc);
String ret = doc.select("body").html(); String ret = doc.select("body").html();
ret = StringUtils.trim(ret); ret = StringUtils.trim(ret);
ret = Images.qiniuImgProcessing(ret);
// cache it // cache it
putHTML(markdownText, ret); putHTML(markdownText, ret);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment