Url解析组件优化,server端映射调整

This commit is contained in:
zhaoqichao
2023-07-05 18:12:17 +08:00
parent 27a7709f08
commit b516e51bc9
7 changed files with 19 additions and 15 deletions

View File

@@ -1,5 +1,6 @@
package com.abin.mallchat.common.chat.domain.entity.msg;
import com.abin.mallchat.common.common.utils.discover.domain.UrlInfo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -23,7 +24,7 @@ import java.util.Map;
public class MessageExtra implements Serializable {
private static final long serialVersionUID = 1L;
//url跳转链接
private Map<String, String> urlTitleMap;
private Map<String, UrlInfo> urlContentMap;
//消息撤回详情
private MsgRecall recall;
//艾特的uid

View File

@@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.abin.mallchat.common.common.utils.FutureUtils;
import com.abin.mallchat.common.common.utils.discover.domain.UrlInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
@@ -30,7 +29,7 @@ public abstract class AbstractUrlDiscover implements UrlDiscover {
private static final Pattern PATTERN = Pattern.compile("((http|https)://)?(www.)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?");
@javax.annotation.Nullable
@Nullable
@Override
public Map<String, UrlInfo> getUrlContentMap(String content) {
@@ -83,4 +82,5 @@ public abstract class AbstractUrlDiscover implements UrlDiscover {
}
return null;
}
}

View File

@@ -14,18 +14,18 @@ import java.util.List;
*/
public class PrioritizedUrlDiscover extends AbstractUrlDiscover {
private final List<UrlDiscover> urlTitleDiscovers = new ArrayList<>(2);
private final List<UrlDiscover> urlDiscovers = new ArrayList<>(2);
public PrioritizedUrlDiscover() {
urlTitleDiscovers.add(new CommonUrlDiscover());
urlTitleDiscovers.add(new WxUrlDiscover());
urlDiscovers.add(new CommonUrlDiscover());
urlDiscovers.add(new WxUrlDiscover());
}
@Nullable
@Override
public String getTitle(Document document) {
for (UrlDiscover urlDiscover : urlTitleDiscovers) {
for (UrlDiscover urlDiscover : urlDiscovers) {
String urlTitle = urlDiscover.getTitle(document);
if (StrUtil.isNotBlank(urlTitle)) {
return urlTitle;
@@ -37,7 +37,7 @@ public class PrioritizedUrlDiscover extends AbstractUrlDiscover {
@Nullable
@Override
public String getDescription(Document document) {
for (UrlDiscover urlDiscover : urlTitleDiscovers) {
for (UrlDiscover urlDiscover : urlDiscovers) {
String urlDescription = urlDiscover.getDescription(document);
if (StrUtil.isNotBlank(urlDescription)) {
return urlDescription;
@@ -49,7 +49,7 @@ public class PrioritizedUrlDiscover extends AbstractUrlDiscover {
@Nullable
@Override
public String getImage(String url, Document document) {
for (UrlDiscover urlDiscover : urlTitleDiscovers) {
for (UrlDiscover urlDiscover : urlDiscovers) {
String urlImage = urlDiscover.getImage(url,document);
if (StrUtil.isNotBlank(urlImage)) {
return urlImage;

View File

@@ -1,5 +1,6 @@
package com.abin.mallchat.custom.chat.domain.vo.response;
import com.abin.mallchat.common.common.utils.discover.domain.UrlInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -50,7 +51,7 @@ public class ChatMessageResp {
private String content;
@ApiModelProperty("消息链接映射-废弃")
@Deprecated
private Map<String, String> urlTitleMap;
private Map<String, UrlInfo> urlContentMap;
@ApiModelProperty("消息类型 1正常文本 2.撤回消息")
private Integer type;
@ApiModelProperty("消息内容不同的消息类型内容体不同见https://www.yuque.com/snab/mallcaht/rkb2uz5k1qqdmcmd")

View File

@@ -1,5 +1,6 @@
package com.abin.mallchat.custom.chat.domain.vo.response.msg;
import com.abin.mallchat.common.common.utils.discover.domain.UrlInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -22,7 +23,7 @@ public class TextMsgResp {
@ApiModelProperty("消息内容")
private String content;
@ApiModelProperty("消息链接映射")
private Map<String, String> urlTitleMap;
private Map<String, UrlInfo> urlContentMap;
@ApiModelProperty("艾特的uid")
private List<Long> atUidList;
@ApiModelProperty("父消息如果没有父消息返回的是null")

View File

@@ -56,7 +56,7 @@ public class MessageAdapter {
messageVO.setSendTime(message.getCreateTime());
AbstractMsgHandler msgHandler = MsgHandlerFactory.getStrategyNoNull(message.getType());
messageVO.setBody(msgHandler.showMsg(message));
messageVO.setUrlTitleMap(Optional.ofNullable(message.getExtra()).map(MessageExtra::getUrlTitleMap).orElse(null));
messageVO.setUrlContentMap(Optional.ofNullable(message.getExtra()).map(MessageExtra::getUrlContentMap).orElse(null));
Message replyMessage = replyMap.get(message.getReplyMsgId());
//回复消息

View File

@@ -12,6 +12,7 @@ import com.abin.mallchat.common.common.domain.enums.YesOrNoEnum;
import com.abin.mallchat.common.common.utils.AssertUtil;
import com.abin.mallchat.common.common.utils.SensitiveWordUtils;
import com.abin.mallchat.common.common.utils.discover.PrioritizedUrlDiscover;
import com.abin.mallchat.common.common.utils.discover.domain.UrlInfo;
import com.abin.mallchat.common.user.domain.entity.User;
import com.abin.mallchat.common.user.domain.enums.RoleEnum;
import com.abin.mallchat.common.user.service.IRoleService;
@@ -91,8 +92,8 @@ public class TextMsgHandler extends AbstractMsgHandler {
}
//判断消息url跳转
Map<String, String> urlTitleMap = URL_TITLE_DISCOVER.getContentTitleMap(body.getContent());
extra.setUrlTitleMap(urlTitleMap);
Map<String, UrlInfo> urlContentMap = URL_TITLE_DISCOVER.getUrlContentMap(body.getContent());
extra.setUrlContentMap(urlContentMap);
//艾特功能
if (CollectionUtil.isNotEmpty(body.getAtUidList())) {
extra.setAtUidList(body.getAtUidList());
@@ -106,7 +107,7 @@ public class TextMsgHandler extends AbstractMsgHandler {
public Object showMsg(Message msg) {
TextMsgResp resp = new TextMsgResp();
resp.setContent(msg.getContent());
resp.setUrlTitleMap(Optional.ofNullable(msg.getExtra()).map(MessageExtra::getUrlTitleMap).orElse(null));
resp.setUrlContentMap(Optional.ofNullable(msg.getExtra()).map(MessageExtra::getUrlContentMap).orElse(null));
resp.setAtUidList(Optional.ofNullable(msg.getExtra()).map(MessageExtra::getAtUidList).orElse(null));
//回复消息
Optional<Message> reply = Optional.ofNullable(msg.getReplyMsgId())