UNPKG

tjc-sdk

Version:

TIANJI IM SDK

2 lines (1 loc) 1.34 kB
import t from"./messageContent.js";import{MessageContentType as s}from"./messageContentType.js";import e from"../client/tjc.js";import i from"./linkMessageContent.js";class r extends t{topArticle;subArticles;constructor(){super(s.Articles)}digest(t){return this.topArticle.title}encode(){let t=super.encode(),s={top:this.topArticle.toJson()};return this.subArticles&&(s.subArticles=this.subArticles.map((t=>t.toJson()))),t.binaryContent=e.utf8_to_b64(JSON.stringify(s)),t}decode(t){super.decode(t);let s=JSON.parse(e.b64_to_utf8(t.binaryContent));this.topArticle=new o,this.topArticle.fromJson(s.top),s.subArticles&&(this.subArticles=[],s.subArticles.forEach((t=>{let s=new o;s.fromJson(t),this.subArticles.push(s)})))}toLinkMessageContent(){let t=[];return t.push(this.topArticle.toLinkMessageContent()),this.subArticles&&this.subArticles.forEach((s=>{t.push(s.toLinkMessageContent())})),t}}class o{articleId;cover;title;digest;url;readReport;toJson(){return{id:this.articleId,cover:this.cover,title:this.title,url:this.url,digest:this.digest,rr:this.readReport}}fromJson(t){this.articleId=t.id,this.cover=t.cover,this.title=t.title,this.digest=t.digest,this.url=t.url,this.readReport=t.rr}toLinkMessageContent(){let t=new i;return t.url=this.url,t.title=this.title,t.contentDigest=this.digest,t.thumbnail=this.cover,t}}export{r as default};