Giter Club home page Giter Club logo

Comments (22)

smuyyh avatar smuyyh commented on May 17, 2024

追书获取目录有好多个接口,那时候看了很久 还是不知道他怎么区分的。所以找了个大部分能用的接口,你有尝试过么?有没有发现这个请求目录接口的规律?

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

我只是追随着大神的脚步在看代码,没有去抓包查看追书的接口。
我记得追书以前有个换源的功能,就是切换书籍的数据来源,不同的数据来源在更新方面会有不同,也许就是这个原因才会存在获取目录有好多接口,这样估计大神就要写一个智能获取目录的接口了,或者简单点就像追书直接给个换源功能,让用户去换个最新的数据来源。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

换源砍掉了 没有做这个。后面再研究研究获取目录的接口

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

小说一般都在晚上更新,估计你要等晚上才可以。

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

bookAPIService的getBookRead方法好像挺好使的,刚试了一下,更新还算及时。

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

在线阅读时,缓存方式好像有问题,在跳到下一章时,会因为下一章下载失败,阅读时直接跳过这些下载失败的章节。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

@anshe80 后面再来看看 最近赶公司的项目 比较没时间了~~ 你可以先帮忙看看要怎么改啊哈哈

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

@anshe80 解决了。有空可以试试哈~

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

@smuyyh 现在出现了另外一个问题:在看完已更新的章节后,再次有更新章节,进去看的时候会出现点击下一页崩溃,重启后还是无法查看这本书的任意章节。感觉应该让主页的章节和阅读时的章节同步或者共享变量,没必要刷新后进入看书还再次去获取网络章节。
大神什么时候把菜单的同步书架放到下拉刷新里面。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

错误信息是什么呢?更新章节好像不太好测吧

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

大神!你的更新逻辑是不是这样?:1、先在书架更新最新章节的提示,不处理已经下载的章节,仅考虑章节数是不是增加了;2、用户知道书有更新进入阅读界面,在阅读界面重新从服务器获取所有的章节,不处理已经下载的章节和最新章节的融合,直接替换所有的章节信息。可能就是因为这样,导致了更新后,章节内容和标题不匹配的情况,这很有可能是章节的那个隐数字和章节标题数字不总是相同的一一对应导致的,因为隐数字和章节标题数字不一样,而本地保存的章节文件名是以隐数字命名的吧,而读取的时候默认先读取本地的。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

缓存的是目录,目录次序对应章节文件序号。所以假如他中间多出一章来…那只能清除缓存,重新获取目录及章节文件才行!

书架有更新章节目前也没有提示,只能手动点击同步书架。这个也没法应对中间多出一章的情况。

目前这种只能清除章节缓存才行了。 你有没有什么好的办法?

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

你现在有手动同步书架的功能了,书架自动更新章节的提示,其实挺好实现的了,你没有写过服务线程吗?启动书架后,利用后台服务连接服务器验证最新章节,就可以了,这只是将手动触发更新变为定条件触发更新而已。
至于缓存的目录,现在想到两个不是很完美的方法:1、假如在第一次保存书籍的目录时,此时的目录是完全正确的,那么每次更新都只是把最新的章节添加到原来保存的目录中,而不是目录全部替换成服务器的目录,这种方法要基于假如的条件成立,才不会出现问题。2、牺牲点性能,老老实实将旧的目录和从服务器获取到的目录进行对比合并出新的目录,这时候就需要看算法设计得怎么样了。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

主要不是说服务的问题。目前没有判断更新的接口,只能说重新获取一遍目录进行比对,这种方式麻烦。中间多出一章或少了一章,或者章节title变了,与本地的章节缓存就冲突了,这些都比较难判断。

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

你想找到追书神器的更新接口?

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

如果有当然再好不过了😄但是他应该是在服务端同步的吧,和帐号绑定了吧?然后有更新就推送信息?这方面没有去研究过

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

确实应该是和帐号绑定的,不过你可以先对list过滤一下重复章节的链接,还是可以的。至于更新和缓存的问题,暂时没想到好的方法。

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

今天试着过滤一下重复的章节,对ReadActivity的showBookToc方法里的目录去重,本想通过链接是否相同去重,结果发现即使链接不同,内容还是可能一样,或许这是追书神器的API问题。

from bookreader.

smuyyh avatar smuyyh commented on May 17, 2024

难搞~ 你可以考虑自己做一套服务端 哈哈 这样就随心所欲了

from bookreader.

wby238 avatar wby238 commented on May 17, 2024

@smuyyh 我想起了……
atoc的接口是获取盗版源的,而btoc的接口是只能获取正版源的,atoc是旧版本追书换源的接口……
追书的缓存对不同的源的储存是分开的,虽然都在同一本书的目录下,或许可以通过更改读取的目录来实现换源?
还有就是atoc的源中,716的源跟正版源的更新时间是一样的,而且质量也很高,我都怀疑是不是内部人员弄得这个网站了……
从atoc获取的源中可以用btoc来获取目录的,但这个获取的目录没有章节计数……

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

中间多出一章或少了一章的问题,想到的处理方式:将保存的章节文件名仅数字变为章节标题,可以增强体验。
但是在实验过程中,发现有些ChapterRead.Chapter的章节标题和目录竟然不一样;目前,考虑在FileUtils.getChapterPath方法中,章节标题通过空格分割去掉第一个,后面所有的词组成需要保存的章节标题。

from bookreader.

anshe80 avatar anshe80 commented on May 17, 2024

醉了!测试的书籍,点击“同步书架”后,章节标题和目录的又一样了。

from bookreader.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.