Releases: Invinciblelee/HaoReader
MONKOVEL_2.2.432532
1.一个浏览器查看章节可能引起的崩溃bug(可能修复了,待观察)
2.修复一个详情页切换书架可能引起的bug
2.2.432517
2019/05/05
*修复发现列表重复bug
*修复内置书源
*修复内置书源和外置716冲突
*优化动态内容获取流程
2019/05/02
*修改界面,统一颜色
*删除一些库,使用系统原生控件,精简安装包
*规则改动:
A.没有@put:规则,新增了一个规则rulePersistedVariables,写法{key:value,key:value}, @get:获取是一样的
B.新增一个规则outerBody代表根节点,适用于所有规则,例如目录列表用这个规则,可以把正文页当成一个目录章节
C.只能用&&,||,%%连接规则,旧版本&,|,%失效,例如rule1||^rule2||rule2#正则@js: ,规则前面加^表示rule2不共用正则和js规则,rule1和rule3会共用正则和js;
D.js规则,写法有:rule(中间不能插入规则) 或 rule@js: 或 全部写js;
E.另外还有写法,例如:rule1@js:ajax(result)@reDIrect:rule2 @reDIrect:重定向一个规则 js执行后会指向rule2,rule2的写法完全和普通规则一样,可以嵌套正则和js;
F.新增几个java调用方法(注:下面的规则不能用连接符号,只对字符串进行操作,不注入其他java对象):
1.parseResultContent(String source, String rule) source 内容,rule 规则 返回字符串
2.parseResultUrl(String source, String rule) 返回字符串,会替换baseUrl
3.parseResultContents(String source, String rule)返回字符串列表
4.formatHtml(String string) 可以把html格式化为可阅读的内容
G.CSS可以用##match##replace 的方式使用正则表达式(注:所有规则均可使用正则表达式,并且必须放到最后面)
H.附一个完整写法:rule@js:jsRule#match#replace||rulejsRule#match#replace||@js:#match#replace||rule@js:jsRule#match#replace@redirect:rule2@js:jsRule#match#replace
MONKOVEL_2.2.432395
*修改界面
*支持混合书源ruleType : HYBRID; 支持css规则ruleType: CSS; 如果是单一规则建议指定类型,性能稍高于混合类型
*目录不再使用正则替换,大幅度加快解析速度
*使用代理模式实现边下边播,支持5.0以下版本,缓存路径YueDu/audios
*支持txt缓存提取(目前只能单线程),提取路径YueDu/books
MONKOVEL_2.1.432317
1.有声书可以开启边下边播(如有异常请关闭,仅支持android6.0及以上的设备)
2.其他优化
MONKOVEL_2.1.432289
MONKOVEL_2.1.432279
1.调整播放通知栏
2.听书添加换源
3.其他优化
MONKOVEL_2.1.432255
1.修复一些崩溃bug
2.修复webView提前销毁导致资源嗅探失败
3.优化播放流程
4.修复切换书籍没有保存播放进度的问题
MONKOVEL_2.1.432228
1.修复bug
2.提供两种js引擎可供选择,V8-速度,Rhino-稳定
3.优化有声小说播放,智能重试,针对有的播放链接失效,自动重试
MONKOVEL_2.1.432219
- 修复bug
- 书源可以找我要
注: 不支持x86架构的cpu,不支持android5.0以下的手机
MONKOVEL_2.1.432181
2019/04/21
-
听书功能上线(尚有不完善的地方),
-
书源bookType请选择AUDIO
-
ruleBookContent 变化, 四种情况:
1.不写规则,表示目录url可直接播放
2.和普通书源规则一样,表示可以在播放页面获取到播放链接
3.$动态获取
4.$$.mp4 播放页面嗅探mp4文件,进入播放页面自动播放(可其他后缀,可能有些格式不能播放);
需要点击播放按钮才能播放的情况:后面接@Operate: + js模拟点击网页示例: 方法一: $('#clickId').trigger("click"); 'p' 标签选择器 ‘.class’ 类选择器 ‘#id’ id选择器 方法二: var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); document.getElementsByClassName("clickClass")[0].dispatchEvent(e); 方法三: document.getElementById("clickId").click();