文章消息添加摘要信息
This commit is contained in:
-88
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -13,16 +13,18 @@ public class ArticleContent {
|
|||||||
public String id;
|
public String id;
|
||||||
public String cover;
|
public String cover;
|
||||||
public String title;
|
public String title;
|
||||||
|
public String digest;
|
||||||
public String url;
|
public String url;
|
||||||
public boolean rr;
|
public boolean rr;
|
||||||
|
|
||||||
public Article() {
|
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.id = id;
|
||||||
this.cover = cover;
|
this.cover = cover;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
|
this.digest = digest;
|
||||||
this.url = url;
|
this.url = url;
|
||||||
this.rr = rr;
|
this.rr = rr;
|
||||||
}
|
}
|
||||||
@@ -33,14 +35,14 @@ public class ArticleContent {
|
|||||||
public ArticleContent() {
|
public ArticleContent() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArticleContent(String id, String cover, String title, String url, boolean rr) {
|
public ArticleContent(String id, String cover, String title, String digest, String url, boolean rr) {
|
||||||
this.top = new Article(id, cover, title, url, 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)
|
if (subArticles == null)
|
||||||
subArticles = new ArrayList<>();
|
subArticles = new ArrayList<>();
|
||||||
subArticles.add(new Article(id, cover, title, url, rr));
|
subArticles.add(new Article(id, cover, title, digest, url, rr));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1454,9 +1454,9 @@ public class Main {
|
|||||||
System.exit(-1);
|
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 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("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.addSubArticle("article3", "https://media.wfcoss.cn/channel-assets/20220816/2dd76540daa9444dae44e942aa1c2bbc.png", "这是第三个测试文章", "测试一下文章的功能", "https://mp.weixin.qq.com/s/W6tanLbALd3qqZM8r3MTgA", false);
|
||||||
payload = articleContent.toPayload();
|
payload = articleContent.toPayload();
|
||||||
|
|
||||||
resultSendMessage = channelServiceApi.sendMessage(0, null, payload);
|
resultSendMessage = channelServiceApi.sendMessage(0, null, payload);
|
||||||
|
|||||||
Reference in New Issue
Block a user