BookReader
BookReader copied to clipboard
请问能增加一个导出缓存为txt的功能吗?
原本是想自己写一个的,但目前只学了C,还没有学Java…… 追书神器的某些源提供的章节内容很好,我想缓存了之后导出为txt再用kindle看……
缓存本身就是txt形式。在SD根目录/Android/data/com.justwayward...下
额,我的意思是将所有的章节放在同一个txt然后导出…… 不然的话缓存的文件本身没有章节标题,这样即使合并了估计效果也不是很好 发现了一个bug…… 在缓存过程中删除小说的话,缓存是不会停下来的,估计后面的缓存都没有被删除…… 还有,虽然不能换源,但能不能在加入书架前让人自己选择用哪个源? 不然默认的源有时候效果不好……
顺便发现另外一个bug; 如果在安装时不允许应用获取设备信息(IMEI等)的话,安装完之后打开会出现没有网络的提示,也的确连不了网,但事实上我在用着wifi,其他应用也是能正常联网的。手机安卓6.0
刚刚看了看源码,发现ChapterRead.java里面将API获取的JSON里的title当作了标题,然而以前抓包的时候遇到过返回的JSON的title为.,body为正常的章节内容的情况…… 这样的情况下会不会出现标题显示为“.”(小数点)的情况?
刚刚发现你获取的源是混合的…… 最后用fiddler来断点再换成自己当时抓的源来解决了…… 顺便推荐176的源,几乎跟正版源一样
- 所有章节放在一个里是可以做,合并一下所有章节就可以。就是怕中间有些缺漏或不完整,这样也会造成合并后的不完整。
- 目前缓存的确不会停下来,我后面抽空加上
- IMEI权限如果没有开,就无法获取设备id,这样也无法调用接口,提示网络不正常的可能是统一处理请求失败的
- 关于换源,之前在抓接口的时候,没有准确区分这些源的关系及对应接口,研究了好一阵子,没怎么明白,所以换源这块没做。你这边好像看的比较透彻了,方便这块的接口整理一下发我麽?我看假期能不能抽出时间来把这些功能补上,谢谢
另外,title为小数点,那标题应该就是小数点了。
OK,以下为对应的接口:
1.有两个获取源的接口:
http://api.zhuishushenqi.com/atoc?view=summary&book=
和
http://api.zhuishushenqi.com/btoc?view=summary&book=
,其中atoc是可以获取盗版源(详细来说的话追书神器的书籍分为两类,一类是可换源的,一类是不可换源的,第一类会获取到正版源+盗版源,第二类只能获取盗版源,但这两类在btoc都只能获取正版源,提供两个例子:http://api.zhuishushenqi.com/atoc?view=summary&book=510f6d8b59762e945300002f
和http://api.zhuishushenqi.com/atoc?view=summary&book=5667c9a44aa8cc2b1d721f5a
对应一二类)的,btoc是只能获取正版源的,book=后面的参数跟你的mix-atoc的参数一样,这里暂且称为bookID。
2.从上面的接口获取到源的信息后,返回的JSON会提供每个源的_id,这个暂时称为sourceID,同一本书下下不同源的sourceID不同。
3.获取目录的接口为http://api.zhuishushenqi.com/btoc/5667cb9bfe53a1b045360d4f?view=chapters
,中间的参数为sourceID,这个返回的JSON与mix-atoc返回的基本相同,但少了ChapterCount,但在1.中获取的JSON中给出了每个源的ChapterCount。
4.追书对换源的处理是更换sourceID,例如A书下有两个源BC,在用B源时读取/book/A/B/下的缓存,用C源时读取/book/A/C/下的缓存,换源的话或许可以这样实现。
PS:这是同一本书的mix-atoc和某个源的btoc获取的JSON的例子,差异很小:
http://api.zhuishushenqi.com/mix-atoc/530db0cdb082391e770284e9
http://api.zhuishushenqi.com/btoc/570771ba326011945ee87167?view=chapters
IMEI权限禁了的话其他程序是可以联网的,只有这个不可以。
title为小数点的是某些源才会出现的情况,下面是正版源与某盗版源的对比:
http://chapter2.zhuishushenqi.com/chapter/http%3a%2f%2fchuangshi.qq.com%2fbk%2fxh%2fAGoEN11pVjQAPlRi-r-1.html
http://chapter2.zhuishushenqi.com/chapter/http%3a%2f%2fbook.my716.com%2fgetBooks.aspx%3fmethod%3dcontent%26bookId%3d72281%26chapterFile%3dU_281533_201607020153163891_3116_1.txt
这样的话标题能否用3.中给出的标题来代替而不是用上面两个返回的title?
对了,这是以前看到的关于追书接口的一篇文章,可以参考下: http://www.jianshu.com/p/220f5b444e62
好的谢谢,我晚点再来研究一下🤝
刚刚无意中发现获取目录的接口有3个…… 跟上面提到的3.一样,三个借口分别是atoc,btoc,ctoc,其中atoc比btoc多了ChapterCount,其他一样,而ctoc的用途不明,章节顺序与atoc和btoc有变动…… 或许atoc是mix-atoc的最佳替代。
mix-atoc还有两个类似的接口:mix-btoc和mix-ctoc…… 后两个没看过多少,我都不知道它开了这么多接口来干嘛了……
-
前面提到的IMEI权限禁止了不能联网,对于本程序来说是正常的。因为追书请求的时候有一部分须上传deviceid,所以默认请求接口有增加了获取deviceid。所以这个如果获取失败,可能会导致请求失败。
-
atoc 貌似没办法完全代替mix-atoc,比如对于http://api.zhuishushenqi.com/mix-atoc/57b90ba7e41357c972a3b1ce?view=chapters 余罪这本书来说,mix-toc像是默认源,他有另一个源,http://api.zhuishushenqi.com/mix-atoc/585843ca574b63df6755a0fd?view=chapters 中间那个就是id,然而用mix-atoc并无法访问,而需要用atoc才能获取到列表。 然后对于http://api.zhuishushenqi.com/mix-atoc/50bff3ec209793513100001c?view=chapters这本书来说,如果用atoc,也获取不到列表。所以mix-atoc和atoc的区别还不确定是什么。mix应该是混合的意思,具体没搞懂
-
另外就是mix-atoc和atoc的结构不一样,换源貌似还不大好处理。
抱歉,我没说明清楚,我说的atoc代替mix-atoc的是获取章节列表的功能。
首先,对于mix-atoc来说,它接受的参数是bookID,在此我们将bookID限定为通过搜索或者其他获取分类得到的; 然后,用atoc获取bookID对应的各个sourceID,再用atoc/btoc/ctoc(这三个都可以,为方便用atoc)来获取sourceID对应的章节列表。
简单来说,mix-atoc的参数只能是bookID,而atoc则有两种功能,一是获取bookID对应的sourceID,一是获取sourceID对应的章节列表。
举个例子: 我们通过搜索http://api.zhuishushenqi.com/book/fuzzy-search?query=%E7%AC%AC%E5%8D%81%E4%BD%BF%E5%BE%92&start=0&limit=100& 得到了“第十使徒”这本书的bookID为530db0cdb082391e770284e9,然后用atoc来获取bookID对应的sourceID, http://api.zhuishushenqi.com/atoc?view=summary&book=530db0cdb082391e770284e9 ,我们选择my716的源为对应的sourceID(sourceID有多个)=570771ba326011945ee87167,然后再用atoc/btoc/ctoc来获取sourceID对应的章节列表,http://api.zhuishushenqi.com/atoc/570771ba326011945ee87167?view=chapters ,而上面的链接得到的才是跟mix-atoc直接获取的类似的。其中最大的不同可能是chaptercount,这个建议用atoc?view=summary这个得到的,还有就是章节标题建议用atoc/sourceID?view=chapters这个得到的。
https://github.com/qq573011406/KindleHelper 这位写的代码可以参考一下,这个是用追书的api下载小说的,这个是实现了换源的。它对mix-atoc获取的源和atoc获取的源分开来处理。
http://api.zhuishushenqi.com/mix-atoc/50bff3ec209793513100001c?view=chapters 这个的话用atoc可以获取列表啊
另外,对于所有返回的JSON,_id代表的是sourceID,book代表的是bookID.
mix-atoc的意思是混合源,大概可认为是正版网站的公众章节+最快更新的盗版网站章节的混合。
追书的mix-atoc就是自动选择,接上次的解释,mix源的保存路径是\book\(bookID)\MIX_TOC_ID(bookID) 其他源的保存路径是\book\(bookID)\(sourceID) 换源的话可以考虑判断当前是否混合源,是的话读取\book\(bookID)\MIX_TOC_ID(bookID),不是的话读取\book\(bookID)\(sourceID)