async function chapterContent(chapterUrl) { var html = await legado.http.get(chapterUrl); var doc = legado.dom.parse(html); var text = legado.dom.selectText(doc, "#content"); legado.dom.free(doc); return text;}async function chapterParagraphCommentCounts(chapterUrl, context) { var raw = await legado.http.get(chapterUrl + "/comment-counts"); var data = JSON.parse(raw); var result = {}; for (var i = 0; i < context.paragraphCount; i++) { var count = data[String(i)] || 0; if (count > 0) { result[String(i)] = count; } } return result;}async function chapterParagraphComments(chapterUrl, rangeKey, query) { var page = (query && query.page) || 1; var raw = await legado.http.get( chapterUrl + "/comments/" + rangeKey + "?page=" + page, ); return JSON.parse(raw);}
段评接口
段评是小说书源的可选扩展。书源实现后,阅读器会在每个相关段落尾部显示评论图标,图标中心展示评论数量;点击后打开底部抽屉查看该段评论详情。
段评图标会参与分页排版。分页模式的覆盖、平移、仿真、无动画都在排版前接收段评数量,避免正文显示后再插入元素导致页面错位。
段落序号
段落序号从
0开始,基准是chapterContent()返回正文按空行/换行切分后的最终段落数组。宿主会把同一份数组传给chapterParagraphCommentCounts()的context.paragraphs。范围 key 支持两种写法:
${index}和${start}+${end}。33+33+5其中
3等价于3+3。阅读器会把同一结束段落的多个范围合并显示,例如
3+3与2+3都会显示在第 4 个段落尾部,数量相加。数量接口
context字段如下:返回值也可以是数组:
数组项里如果只写一个下标,默认就是单段落:
只返回数量,不要在这个接口返回完整评论详情。阅读器会在正文显示前等待支持该接口的书源返回数量。
详情接口
用户点击段评图标后,阅读器调用
chapterParagraphComments():详情中支持的主要字段:
idnicknameavatarUrlcontentcreatedAtlikeCountlikedreplyCounttags作者、粉丝等级tags的单项格式:点赞接口
实现
likeParagraphComment()后,抽屉中的点赞按钮会启用:liked是目标状态:true表示点赞,false表示取消点赞。回复接口
实现
replyParagraphComment()后,抽屉底部回复框会启用:当前版本会把回复提交到该段评列表的第一条评论 ID。书源侧如果需要楼中楼结构,可以把第一条作为根评论处理。
最小完整示例
实现建议
context.paragraphs和context.paragraphCount。${start}+${end}。