《开发文档所没说的事20200321》
1. 【expr】用户在app正式版首页输入一本漫画的网页网址打开,app会检查官方插件中心上面所有插件的meta节点的expr是否和它匹配,然后app进入匹配的插件界面或者原网页界面,前者的话还会瞬间检查这个插件的book节点的expr是否和它匹配,是的话app就直接进入book节点,否则就进入home节点。
2. 【find】多多猫容器引用的cheerio库,找子元素只能用children()不能用find()。
3. 【GUID】(不再需要写,可忽略)是插件的管理权限,同一个guid 的插件,是替换相同的guid的旧的插件
4. (SiteD引擎)每次的一个`http请求`的过程:
1. 确定url (buildUrl?)
2. 确定参数(buildArgs?)等一些信息(buildHeader?)【buildHeader比buildArgs早运行】
3. http
4. 解析(parseUrl? -> parse)(如果parseUrl返回 "CALL::http://xx.com",会再一次进行2.然后3.然后parseUrl,直到不返回 "CALL::..." )
- PS.如果想把parseUrl里返回的数据作为body内容在后面的parse里post请求是不行的,但可以把parseUrl里返回的数据作为body内容在下一轮parseUrl里post请求(这一轮里return "CALL::POST::下一轮url")
5. `private="1"`效果:两条街不可见,收藏别人不可见,不可通过二维码分享出去。
6. `search节点`的url用了@page也只有第一页结果,是app限制,防止多站搜索结果过多。
7. 【sections】截止v35引擎,附加节点sections节点需要先进入buildUrl才能进入parseUrl;book存储的数据在sections的buildUrl读取不了,需要在后面的parseUrl或parse环节读取。
8. 【ua】在电脑写视频插件解析网站时ua最好用手机(app不支持flash格式),推荐电脑浏览器用Smart Header插件模拟ua。插件每层节点都可以单独设置ua,不写则自动继承父代。
9. 如果源网站`编码`是GBK,插件meta节点里encode写GB18030,以更好兼容全平台设备。
苹果版多多猫不完整对?后面含有GBK等汉字编码的url强制百分号编码导致get请求到别的网页(搜索词改为post方式也失败),安卓uwp版正常。
10. 视频插件的采用`解码`格式:mp4优于ogg优于webm,(苹果版不支持webm)。
对于url有302/301跳转的(引擎会自动跳转),parse/parseUrl函数里读取url参数要在cache=0时才能读取跳转后url(否则引擎会读取缓存找跳转前的url)。
uwp版对于url有302/301跳转的,parse/parseUrl里url参数会在开头自动加上跳转前的域名(结尾没有斜杠),是bug,要`url.replace(/^[^\?]+(https?:)/i,'$1')`去除。安卓ios版正常。
11. 【输出内容】updates节点的newSection在多多猫app界面和name可以兼容共用在同一行。
tag/search节点的author、newSection、updateTime在app界面排斥抢占用同一行(只能按优先度updateTime>author>newSection显示其中一项),status 单独占用下一行。
search节点的status在app界面和【by XX插件】以同时出现共存在同一行。
12. 【调试记录】开启开发者模式:进入安卓多多猫app的设置-高级设置。长按标题的“高级设置”几个字,最底部多出一次性出现的开关。在多多猫目录里/sdcard/Android/data/org.noear.ddcat/files可以找到log运行日志、error日志等。在插件的function里可以写print("字符串"),在app相应节点执行时候会显示出字符串或函数值,在刚才多多猫目录里可以找到print过的日志。正式发布的插件不能运行print,否则在ios等版本中断函数运行。
13. 【域名变化】SiteD引擎开发者说如果插件的域名发生了变化:(SiteD引擎)每次的一个`http请求`的过程:
1. 千万不要改了插件url节点;
1.1 在main节点增加durl属性,是作为最新/实际的源网站地址(url)
1.2 在expr节点内容里同时匹配新旧两个域名的网址,用 \| 隔开
2. 改好插件后;在book节点buildUrl函数对url参数做一下域名替换。这样做:1.为插件兼容性升级;2.同地兼容用户之前已收藏的漫画!!!
- 最好按着buildUrl的函数输入输出格式,配套buildWeb。
14. 非js区域`注释`用`<!-- xx --> `。js区域里面不能//注释,可以`/* */`注释,上架时少保留注释,因为多平台兼容性不好。
15. xml代码区、js代码区的特定字符记得`转义`。
- 序言
- 第一章 基础
- 1.1 Html基础
- 1.2 CSS选择器
- 1.2.1 标签选择器
- 1.2.2 class/id选择器
- 1.2.3 属性选择器
- 1.3 JavaScript基础
- 1.4 json基础
- 第二章 中级
- 2.1 插件结构总览
- 2.2 meta头部节点讲解
- 2.3 main主体节点讲解
- 2.4 script脚本节点讲解
- 2.5 插件的安装调试与发布
- 第三章 高级
- 3.1 插件高级特性
- 3.2 常见内容保护突破方法
- 3.3 开发文档所没说的事
- 3.4 电脑js脚本测试插件
- 3.5 加login节点教程
- 3.6 使用yeoman生成器
- 3.7 自动化发布插件
- 第四章 附录
- 4.1 markdown基本用法