Просмотр исходного кода

文章消息添加摘要信息

heavyrian2012 3 лет назад
Родитель
Сommit
2559fa7e48

+ 0 - 88
common/src/main/java/cn/wildfirechat/messagecontentbuilder/ArticlesContentBuilder.java

@@ -1,88 +0,0 @@
-package cn.wildfirechat.messagecontentbuilder;
-
-import cn.wildfirechat.pojos.MessagePayload;
-import cn.wildfirechat.proto.ProtoConstants;
-import io.netty.util.internal.StringUtil;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.function.Consumer;
-
-public class ArticlesContentBuilder extends MessageContentBuilder{
-    public static class Article {
-        public String id;
-        public String cover;
-        public String title;
-        public String digest;
-        public String url;
-        public boolean readReport;
-    }
-    public Article topArticle;
-    public List<Article> subArticles;
-
-    public static ArticlesContentBuilder newBuilder(String id, String cover, String title, String digest, String url, boolean readReport) {
-        ArticlesContentBuilder builder = new ArticlesContentBuilder();
-        builder.topArticle = new Article();
-        builder.topArticle.id = id;
-        builder.topArticle.cover = cover;
-        builder.topArticle.title = title;
-        builder.topArticle.digest = digest;
-        builder.topArticle.url = url;
-        builder.topArticle.readReport = readReport;
-        return builder;
-    }
-
-    public ArticlesContentBuilder addSubArticle(String id, String cover, String title, String digest, String url, boolean readReport) {
-        Article article = new Article();
-        article.id = id;
-        article.cover = cover;
-        article.title = title;
-        article.digest = digest;
-        article.url = url;
-        article.readReport = readReport;
-        if(subArticles == null) {
-            subArticles = new ArrayList<>();
-        }
-        subArticles.add(article);
-        return this;
-    }
-
-    private static JSONObject toJSON(Article article) {
-        JSONObject top = new JSONObject();
-        if(!StringUtil.isNullOrEmpty(article.id))
-            top.put("id", article.id);
-        if(!StringUtil.isNullOrEmpty(article.cover))
-            top.put("cover", article.cover);
-        if(!StringUtil.isNullOrEmpty(article.title))
-            top.put("title", article.title);
-        if(!StringUtil.isNullOrEmpty(article.digest))
-            top.put("digest", article.digest);
-        if(!StringUtil.isNullOrEmpty(article.url))
-            top.put("url", article.url);
-        if(article.readReport)
-            top.put("rr", article.readReport);
-        return top;
-    }
-
-    @Override
-    public MessagePayload build() {
-        MessagePayload payload = encodeBase();
-        payload.setType(ProtoConstants.ContentType.Articles);
-        payload.setPersistFlag(ProtoConstants.PersistFlag.Persist_And_Count);
-        payload.setSearchableContent(topArticle.title);
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("top", toJSON(topArticle));
-        if(subArticles != null && !subArticles.isEmpty()) {
-            JSONArray jsonArray = new JSONArray();
-            subArticles.forEach(article -> jsonArray.add(toJSON(article)));
-            jsonObject.put("subArticles", jsonArray);
-        }
-
-        payload.setBase64edData(Base64.getEncoder().encodeToString(jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8)));
-        return payload;
-    }
-}

+ 7 - 5
common/src/main/java/cn/wildfirechat/pojos/ArticleContent.java

@@ -13,16 +13,18 @@ public class ArticleContent {
         public String id;
         public String cover;
         public String title;
+        public String digest;
         public String url;
         public boolean rr;
 
         public Article() {
         }
 
-        public Article(String id, String cover, String title, String url, boolean rr) {
+        public Article(String id, String cover, String title, String digest, String url, boolean rr) {
             this.id = id;
             this.cover = cover;
             this.title = title;
+            this.digest = digest;
             this.url = url;
             this.rr = rr;
         }
@@ -33,14 +35,14 @@ public class ArticleContent {
     public ArticleContent() {
     }
 
-    public ArticleContent(String id, String cover, String title, String url, boolean rr) {
-        this.top = new Article(id, cover, title, url, rr);
+    public ArticleContent(String id, String cover, String title, String digest, String url, boolean rr) {
+        this.top = new Article(id, cover, title, digest, url, rr);
     }
 
-    public ArticleContent addSubArticle(String id, String cover, String title, String url, boolean rr)  {
+    public ArticleContent addSubArticle(String id, String cover, String title, String digest, String url, boolean rr)  {
         if (subArticles == null)
             subArticles = new ArrayList<>();
-        subArticles.add(new Article(id, cover, title, url, rr));
+        subArticles.add(new Article(id, cover, title, digest, url, rr));
         return this;
     }
 

+ 3 - 3
sdk/src/main/java/cn/wildfirechat/sdk/Main.java

@@ -1454,9 +1454,9 @@ public class Main {
             System.exit(-1);
         }
 
-        ArticleContent articleContent = new ArticleContent("article1", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是一个测试文章", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", true);
-        articleContent.addSubArticle("article2", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是第二个测试文章", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", false);
-        articleContent.addSubArticle("article3", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是第三个测试文章", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", false);
+        ArticleContent articleContent = new ArticleContent("article1", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是一个测试文章", "测试一下文章的功能", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", true);
+        articleContent.addSubArticle("article2", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是第二个测试文章", "测试一下文章的功能", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", false);
+        articleContent.addSubArticle("article3", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是第三个测试文章", "测试一下文章的功能", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", false);
         payload = articleContent.toPayload();
 
         resultSendMessage = channelServiceApi.sendMessage(0, null, payload);