|
@@ -1,26 +1,27 @@
|
|
|
package com.tzld.longarticle.recommend.server.service.recommend.filter.strategy;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.tzld.longarticle.recommend.server.common.ThreadPoolFactory;
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.StatusEnum;
|
|
|
import com.tzld.longarticle.recommend.server.model.dto.Content;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.crawler.ArticleSensitive;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleUnsafeTitle;
|
|
|
import com.tzld.longarticle.recommend.server.remote.ArticleSensitiveRemoteService;
|
|
|
import com.tzld.longarticle.recommend.server.repository.crawler.ArticleSensitiveRepository;
|
|
|
-import com.tzld.longarticle.recommend.server.model.entity.crawler.ArticleSensitive;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleUnsafeTitleRepository;
|
|
|
import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterParam;
|
|
|
import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterResult;
|
|
|
import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterStrategy;
|
|
|
-import com.tzld.longarticle.recommend.server.util.Md5Util;
|
|
|
import com.tzld.longarticle.recommend.server.util.TitleSimilarCheckUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.CountDownLatch;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
-import java.util.concurrent.Future;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@Component
|
|
|
@Slf4j
|
|
@@ -30,6 +31,8 @@ public class SensitiveStrategy implements FilterStrategy {
|
|
|
private ArticleSensitiveRemoteService articleSensitiveRemoteService;
|
|
|
@Autowired
|
|
|
private ArticleSensitiveRepository articleSensitiveRepository;
|
|
|
+ @Autowired
|
|
|
+ private ArticleUnsafeTitleRepository articleUnsafeTitleRepository;
|
|
|
|
|
|
@ApolloJsonValue("${UnSafeTitles:[]}")
|
|
|
private static List<String> UnSafeTitles;
|
|
@@ -54,8 +57,14 @@ public class SensitiveStrategy implements FilterStrategy {
|
|
|
// if (CollectionUtil.isNotEmpty(articleSensitiveList)) {
|
|
|
// articleSensitiveMap = articleSensitiveList.stream().collect(Collectors.toMap(ArticleSensitive::getMd5, o -> o));
|
|
|
// }
|
|
|
-
|
|
|
- List<Set<Character>> unsafeTitleCache = TitleSimilarCheckUtil.makeCache(UnSafeTitles);
|
|
|
+ List<String> allUnSafeTitles = UnSafeTitles;
|
|
|
+ List<ArticleUnsafeTitle> articleUnsafeTitleList = articleUnsafeTitleRepository.getByStatus(StatusEnum.ONE.getCode());
|
|
|
+ if (CollectionUtils.isNotEmpty(articleUnsafeTitleList)) {
|
|
|
+ for (ArticleUnsafeTitle articleUnsafeTitle : articleUnsafeTitleList) {
|
|
|
+ allUnSafeTitles.add(articleUnsafeTitle.getTitle());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Set<Character>> unsafeTitleCache = TitleSimilarCheckUtil.makeCache(allUnSafeTitles);
|
|
|
for (Content content : param.getContents()) {
|
|
|
try {
|
|
|
if (TitleSimilarCheckUtil.isDuplicateContentByCache(content.getTitle(), unsafeTitleCache,
|