阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。

Related tags

App legado
Overview
legado

Legado


阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。

Commitizen friendly Build Action Downloads GitHub issues GitHub contributors

阅读3.0

下载

阅读API

  • 阅读3.0 提供了2种方式的API:Web方式Content Provider方式。您可以在这里根据需要自行调用。
  • 可通过url唤起阅读进行一键导入,url格式: legado://import/{path}?src={url}
  • path类型: bookSource,rssSource,replaceRule,textTocRule,httpTTS,theme,readConfig
  • path类型解释: 书源,订阅源,替换规则,本地txt小说目录规则,在线朗读引擎,主题,阅读排版

感谢

  • org.jsoup:jsoup
  • cn.wanghaomiao:JsoupXpath
  • com.jayway.jsonpath:json-path
  • com.github.gedoor:rhino-android
  • com.squareup.okhttp3:okhttp
  • com.github.bumptech.glide:glide
  • org.nanohttpd:nanohttpd
  • org.nanohttpd:nanohttpd-websocket
  • cn.bingoogolapple:bga-qrcode-zxing
  • com.jaredrummler:colorpicker
  • org.apache.commons:commons-text
  • io.noties.markwon:core
  • io.noties.markwon:image-glide
  • com.hankcs:hanlp
  • com.positiondev.epublib:epublib-core

免责声明

https://gedoor.github.io/MyBookshelf/disclaimer.html

界面

image image image image image image

其它

其它网友做的IOS版本: https://github.com/kaich/Yuedu

Comments
  • [BUG] 部分书源无法使用

    [BUG] 部分书源无法使用

    机型(如Redmi K30 Pro)

    安卓版本(如Android 7.1.1)

    6.0.1

    阅读Legdao版本(我的-关于-版本,如3.20.112220)

    3.20.121712等所有版本

    网络环境(移动,联通,电信,移动宽带,联通宽带,电信宽带,等等..)

    问题描述(简要描述发生的问题)

    之前在公众号下了@不世玄奇大佬的书源,挺喜欢可。可是总卡在详情页界面,目录哪里一直是加载中……,我以为是手机系统低的缘故。 昨天在github下载了@10bits大佬的gedoor-Build版最新版,可以用不世玄奇大佬的书源,另之前不能用的书源(源仓库@芜恙大佬的“斋书苑”“书虫”等——也是目录加载失败)也可以用了。 我发下@芜恙大佬的书虫书源的 目录列表规则 +@js:doc = org.jsoup.Jsoup.parse(result); html = ""; if (result.match(/data-id="(\d+)"/)) { num = result.match(/查看隐藏章节((\d+))/)[1]; p = parseInt(num/900); for (var j = 1; j <= p + 1; j++) { bid = result.match(/data-bid="(\d+)"/)[1]; page = j; url = "https://www.shuchong.info/api/"; body = "action=list&bid=" + bid + "&page=" + page; option = { "method": "POST", "body": String(body) } json = JSON.parse(java.ajax(url + "," + JSON.stringify(option))).data; for (var i = 0; i < json.length; i++) { html += '

  • ' + json[i].cN + ' ' + json[i].uT + '
  • ' } } doc.select("#more-chapter").before(html).remove() } doc.select(".chapter-list li") 我比较了下好像都有这段代码 org.jsoup.Jsoup.parse(result); 我也不懂,不知道是不这里的问题。 之前以为是系统问题,养老机系统不更新,有些书源用不了那没办法。可共存版可以用,希望大佬有空了可以下。大佬辛苦了。

    使用书源(填写URL或者JSON)

    @不世玄奇大佬的书源就不写了。

    BUG 
    opened by sartonsh 30
  • [Feature Request] 让阅读能够变得神似正版的段落评论功能

    [Feature Request] 让阅读能够变得神似正版的段落评论功能

    开发进度

    • [x] 书源编辑段评规则UI #2250
    • [ ] 阅读界面UI
    • [ ] 具体功能实现

    功能描述

    1. 像起点,QQ阅读,纵横等网站一样的段评
    2. 还希望有段评缓存功能,像QQ阅读一样能够保存评论离线阅读

    MKB%QA22YLP}BP(U8SDFFU8

    image

    然后,正版网站的评论api是开放的,无论是不是收费章节,所以不要质疑可行性

    期望实现方式

    起点的api结构是:

    先通过reviewSummary获取段评的数量 然后通过reviewList获取具体的段评 如果要获取评论的回复,则要使用quoteReviewList

    据了解,QQ阅读,纵横的api结构也大差不差,因此可以作为通用的框架来判断

    还有一个细节,起点的reviewList有一个quoteContent,这个quoteContent是该段评所评论的段落的内容,可以通过字符串比较来判断这个段落是否属于这个段落 ~甚至有可能通过这个手段来从正版获得内容(幻想~

    附加信息

    我已经把起点有关的api扒下来了,下面是api获取到的内容demo,可以作为框架参考:

    希望大佬能教教我手机程序的请求拦截,只会用devtools的菜鸟哭了,扒不了QQ阅读的api

    reviewSummary: 获取段评的数量信息,就像是刚刚打开起点阅读界面的时候,每个段落评论数量的信息

    URL:https://read.qidian.com/ajax/chapterReview/reviewSummary?_csrfToken={_csrfToken}&bookId={bookId}&chapterId={chapterId}

    {
        "code": 0,
        "msg": "success",
        "data": {
            "list": [
                {
                    "segmentId": -1, 
                    "reviewNum": 98,
                    "containSelf": false,
                    "isHotSegment": false
                },
                {
                    "segmentId": 1,
                    "reviewNum": 44,
                    "containSelf": false,
                    "isHotSegment": true
                },
                {
                    "segmentId": 2,
                    "reviewNum": 45,
                    "containSelf": false,
                    "isHotSegment": true
                }
            ],
            "total": 3
        }
    }
    

    -1:章节名的段落id

    reviewList:具体的评论列表

    URL:https://read.qidian.com/ajax/chapterReview/reviewList?_csrfToken={_csrfToken}&bookId={bookId}&chapterId=${chapterId}&segmentId={segmentId}&type=2&page={page}&pageSize={maxReviewCount}

    起点有一次性请求的段评数量的限制,可以把 maxReviewCount 设置的比较大来解除这个限制 也可以分次请求,page从1开始计数,如果一个段落的评论已经获取完了,那么isEnd将会变成1

    {
        "code": 0,
        "msg": "success",
        "data": {
            "list": [
                {
                    "reviewId": "737964112289726464",
                    "cbid": "21960119108488104",
                    "ccid": "61191279283257335",
                    "guid": "247430484",
                    "userId": "313229665",
                    "nickName": "朕的几何染着血",
                    "avatar": "https://qidian.qpic.cn/qd_face/349573/8432018/100",
                    "segmentId": 106,
                    "content": "查水表的",
                    "status": 1,
                    "createTime": "05-01 10:02:11",
                    "updateTime": "2022-06-06 17:38:48",
                    "quoteReviewId": "0",
                    "quoteContent": "“哪位!”",
                    "quoteGuid": "0",
                    "quoteUserId": "0",
                    "quoteNickName": "",
                    "type": 2,
                    "likeCount": 6,
                    "dislikeCount": 0,
                    "userLike": false,
                    "userDislike": false,
                    "isSelf": false,
                    "essenceStatus": false,
                    "riseStatus": false,
                    "level": 5,
                    "imagePre": "",
                    "imageDetail": "",
                    "rootReviewId": "737964112289726464",
                    "rootReviewReplyCount": 0
                }
            ],
            "total": 1,
            "isEnd": 1
        }
    }
    

    quoteReviewList:评论的回复

    URL: https://read.qidian.com/ajax/chapterReview/quoteReviewList?_csrfToken={_csrfToken}&reviewId={reviewId}&page={page}&pageSize={maxReviewCount}

    reviewList差不多

    {
        "code": 0,
        "msg": "success",
        "data": {
            "quoteReviewInfo": {
                "reviewId": "744860259612557312",
                "cbid": "21960119108488104",
                "ccid": "61191279283257335",
                "guid": "800104803528",
                "userId": "104803528",
                "nickName": "等待消失的爱",
                "avatar": "https://qidian.qpic.cn/qd_face/349573/5411122/100",
                "segmentId": 100,
                "content": "?????????",
                "status": 1,
                "createTime": "05-20 10:45:01",
                "updateTime": "2022-06-10 16:29:20",
                "quoteReviewId": "0",
                "quoteContent": "  “要你何用!!”",
                "quoteGuid": "0",
                "quoteUserId": "0",
                "quoteNickName": "",
                "type": 2,
                "likeCount": 22,
                "dislikeCount": 0,
                "userLike": false,
                "userDislike": false,
                "isSelf": false,
                "essenceStatus": false,
                "riseStatus": false,
                "level": 94,
                "imagePre": "",
                "imageDetail": "",
                "rootReviewId": "744860259612557312",
                "rootReviewReplyCount": 1
            },
            "list": [
                {
                    "reviewId": "745021049921470464",
                    "cbid": "21960119108488104",
                    "ccid": "61191279283257335",
                    "guid": "800005294937",
                    "userId": "5294937",
                    "nickName": "蜉蚴特",
                    "avatar": "https://qidian.qpic.cn/qd_face/349573/25/100",
                    "segmentId": 100,
                    "content": "回复 等待消失的爱:",
                    "status": 1,
                    "createTime": "05-20 21:23:56",
                    "updateTime": "2022-06-10 20:04:47",
                    "quoteReviewId": "744860259612557312",
                    "quoteContent": "  “要你何用!!”",
                    "quoteGuid": "800104803528",
                    "quoteUserId": "104803528",
                    "quoteNickName": "等待消失的爱",
                    "type": 10,
                    "likeCount": 6,
                    "dislikeCount": 0,
                    "userLike": false,
                    "userDislike": false,
                    "isSelf": false,
                    "essenceStatus": false,
                    "riseStatus": false,
                    "level": 95,
                    "imagePre": "",
                    "imageDetail": "",
                    "rootReviewId": "744860259612557312",
                    "rootReviewReplyCount": 0
                }
            ],
            "total": 1,
            "isEnd": 1
        }
    }
    

    效果演示

    QQ阅读的界面:

    2f39ffdbe79ec2d98c7f4d9424027d82

    正如上图,大佬们应该都用过QQ阅读或者起点吧(滑稽)如果加上了这功能,是不是就几乎和正版差不多了?(笑

    这个功能我已经构思了很久,本来想自己开发的,结果发现了阅读这个宝玉,就希望能够借助这块宝玉,让自己的设想能够得以实现,我很愿意和大佬们探讨这个功能的实现,希望阅读能够变得更好!

    需求 Stale 
    opened by Seidko 28
  • [BUG] 语音朗读15分钟就自动停止了

    [BUG] 语音朗读15分钟就自动停止了

    浏览器版本(web端反馈,先勾选浏览器,然后填版本号)

    • [ ] Chrome/Edge/Firefox PC
    • [ ] Chrome/Edge/Firefox/WebView Android
    • [x] 其他浏览器,请补充

    机型

    Mi11

    安卓版本

    Android 12

    阅读Legdao版本

    3.22.101709 ~ 3.22.102223

    BUG 
    opened by shui0855 21
  • [求助] 越来越多网站给 搜索页 添加人机验证 (Cloudflare CDN 的 hCaptcha),这种该怎么写书源规则?

    [求助] 越来越多网站给 搜索页 添加人机验证 (Cloudflare CDN 的 hCaptcha),这种该怎么写书源规则?

    最近发现我自己写的书源里几乎有一半小说网站都专门给 搜索页 加了个人机验证(都是 Cloudflare CDN 的 hCaptcha)。

    这种情况下,后台访问显然无法通过 CDN 的人机验证,即使用 webView 也不行。

    这些网站都是最近陆陆续续开始加人机验证的,越来越多了,都是只针对 搜索页,其他页面都没有,显然是针对《阅读》的。 这些网站应该都有同行交流群?估计很快,其他同类网站有样学样都会开始这么干,普及开来后,到时候岂不是只能用用 API 书源了,这制作门槛/限制就高多了。。。

    随便举几个例子:

    • https://www.wcxsw.org
    • https://www.siluke.com
    • https://www.sbooktxt.com
    • https://www.ddxs.com
    • https://m.ddxs.com

    有没有大佬知道怎么解决的? 目前见到过一个解决方法,但是每次搜索都要手动通过一次验证码(通过后短时间内不用再次验证,但即使这样也代表每天都会遇到),感觉也太麻烦了,似乎还只能用于手机版网页,而且搜索时间太慢,还有概率失败。。。

    有没有更好的方案?

    searchUrl 内容是:

    @js:
    url='搜索地址';
    option={"body":"keyword="+key,"method":"POST","webView":true};
    option.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 12; Nexus 5X Build/NRD90M); wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/96.0.4664.104 Mobile Safari/537.36"};
    java.put('url',String(url+','+JSON.stringify(option)))
    

    bookList 内容是:

    @js:
    path='搜索结果列表选择器';
    u=java.get('url');
    c=java.getElement(path);
    s=()=>{java.setContent(java.ajax(u));
    c=java.getElement(path)};
    !c.length||s();!src.includes('no-js')||eval("cookie.removeCookie(source.getKey());java.startBrowserAwait(u,'ver');s()");
    c
    
    opened by XIU2 19
  • [Feature Request] 希望可以添加在线朗读的离线预加载功能

    [Feature Request] 希望可以添加在线朗读的离线预加载功能

    功能描述(请清晰的、详细的描述你想要的功能)

    朗读分为系统离线朗读和在线朗读。离线的tts限于处理器性能等原因通常效果不尽如人意。在线的tts比如微软tts就可以达到很好的效果。 然而在线tts的性能会因为网络原因使体验感极差,比如突然网卡了,或者某个地区访问国外tts服务延迟非常大(会导致读完一句话之后要等好久才有第二句),又比如上飞机没网了就用不了了。 所以我在想tts既然是请求完了得到一段mp3或者是wav等音频文件,那何不写一个和离线下载章节一样的功能,按照顺序把请求的音频文件保存下来呢,这样也不会因为网络波动导致每一句话直接都要等上一会,在没有网络的情况下也可以获得在线版的良好体验。

    期望实现方式(阅读应该如何实现该功能)

    可以顺序把音频文件保存在一个文件夹里,按照顺序重命名,离线朗读的时候按照顺序播放音频文件就行。 也可以每次获取到下一段音频,就和上一段音频合成,形成一个完整的音频。 具体选哪种操作就怎么方便怎么来。

    附加信息(其他的与功能相关的附加信息)

    效果演示(可以手绘一些草图,或者提供可借鉴的图片)

    需求 Stale 
    opened by lmst2 17
  • [BUG] 阿里云语音规则存在问题

    [BUG] 阿里云语音规则存在问题

    复现步骤(详细描述导致问题产生的操作步骤,如果能稳定复现)

    如果读到的行只有符号没有中文将会卡住不会进行下一行的朗读

    例如

      “该回去了。”
      .....
      .....
      Ps:明天一章写完,第一卷就算是彻底结束了,至于为什么不是今天结束...
    

    读完 该回去了 后将一直停留在 .....

    与 https://github.com/gedoor/legado/issues/1357 有关

    BUG 
    opened by chachako 15
  • [BUG] 软件崩溃,刷新就崩溃,目前只能离线阅读

    [BUG] 软件崩溃,刷新就崩溃,目前只能离线阅读

    机型(如Redmi K30 Pro)

    金立s10

    安卓版本(如Android 7.1.1)

    7.0

    阅读Legdao版本(我的-关于-版本,如3.20.112220)

    app版本 3.21.072722 app版本 3.21.072522 也有这个问题

    网络环境(移动,联通,电信,移动宽带,联通宽带,电信宽带,等等..)

    WiFi,移动

    问题描述(简要描述发生的问题)

    42本小说,端口1124,线程6,自动刷新开启(关闭后下拉刷新也存在),在有网情况下刷新更新一两本书后软件莫名崩溃

    使用书源(填写URL或者JSON)

    
    
    
    
    
    
    

    复现步骤(详细描述导致问题产生的操作步骤,如果能稳定复现)

    见问题描述

    日志提交(问题截图或者日志)

    SUPPORTED_64_BIT_ABIS=[Ljava.lang.String;@d314179 versionCode=8377 BOARD=S10 BOOTLOADER=unknown TYPE=user ID=NRD90M TIME=1528111016000 BRAND=GIONEE TAG=Build HARDWARE=mt6757 SERIAL=8H7HJVS4WWLNCUFM SUPPORTED_ABIS=[Ljava.lang.String;@c81eebe CPU_ABI=arm64-v8a IS_DEBUGGABLE=false RADIO=unknown MANUFACTURER=GIONEE IS_EMULATOR=false SUPPORTED_32_BIT_ABIS=[Ljava.lang.String;@6718e40 TAGS=release-keys CPU_ABI2= UNKNOWN=unknown PERMISSIONS_REVIEW_REQUIRED=true USER=android FINGERPRINT=GIONEE/S10/GIONEE_SW17G04:7.0/NRD90M/1521111777:user/release-keys HOST=COMPILER-2 versionName=3.21.072722 PRODUCT=S10 DISPLAY=amigo4.0.3S.18 MODEL=GIONEE S10 DEVICE=GIONEE_SW17G04 java.lang.IllegalStateException: Couldn't read row 180, col 3 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it. at android.database.CursorWindow.nativeGetLong(Native Method) at android.database.CursorWindow.getLong(CursorWindow.java:511) at android.database.CursorWindow.getInt(CursorWindow.java:578) at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:84) at io.legado.app.data.dao.BookSourceDao_Impl$10.call(BookSourceDao_Impl.java:1207) at io.legado.app.data.dao.BookSourceDao_Impl$10.call(BookSourceDao_Impl.java:1160) at androidx.room.CoroutinesRoom$Companion$createFlow$1$1.invokeSuspend(CoroutinesRoom.kt:122) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761)

    BUG Stale 
    opened by lqfy-jhc 15
  • 目录正则无法选中以及使用逻辑的问题

    目录正则无法选中以及使用逻辑的问题

    确认

    • [X] 搜索现有issues,不存在相似或相关的issue
    • [X] 最新测试版依然存在此问题
    • [X] 此问题和Xposed、Lsposed、Magisk、手机主题、浏览器插件等无关

    问题描述

    阅读本地txt小说时,发现目录分割不适合,便想切换另一个目录正则,遇到了于下两个问题,如有错误还请指正 1.关于目录正则选项界面,每个规则有一个选中按钮和一个开关按钮,不太理解其中使用的逻辑。就我使用体验来看,其和书源一样,目录正则只能使用一个。不像书源需要“开启”来作为搜索目标,目录正则选中了默认就是开启,没有选中的默认就是关闭,开关按钮似乎没有存在的必要,反而会对使用者造成迷惑。 2.在切换目录正则的时候,发现选定按钮锚定在了默认第一个规则上,无论是选中之后的哪一个规则都无法生效,把规则删除就直接无法选中了。复现过程参考了https://github.com/gedoor/legado/issues/1499 并关闭了“拆分超长章节”选项

    复现步骤

    打开软件,进入书架,点开将夜,打开目录,拉倒最底下,发现目录切割出错,如图所示(“数字+卷”前面应该有“第”字这个必要条件才能触发章节切割) Screenshot_2022-12-02-18-42-43-935_io legado play release 于是想要切换规则,发现无法切换,选定按钮锚定在了默认的第一个规则 Screenshot_2022-12-02-18-46-50-437_io legado play release 尝试删除第一个规则,然后选中第二个规则,点击确定,结果如图所示 Screenshot_2022-12-02-18-48-18-612_io legado play release 回到正文界面,点击右上角选项中的“更新目录”,再次进入目录界面,发现没有变化 在余下的十多本本地txt小说都触发了上述的问题,其中复现过程使用的将夜和体积最小的悟空传(规则本身没问题,但无法切换)已上传

    日志提交

    Screenshot_2022-12-02-18-53-26-988_io legado play release Screenshot_2022-12-02-18-53-38-719_io legado play release

    阅读版本

    3.22.120121

    Android版本

    Android 11 miui 12.6 by xiaomi.eu

    机型

    xiaomi 9

    其他信息

    《悟空传》(校对版全本)作者:今何在.txt 《将夜》(校对版全本)作者:猫腻.txt

    BUG 
    opened by ra1nbow2000 14
  • 详情页的章节目录需要点击按钮后,才会触发循环请求章节数据,返回html 的json数据,请问各位大佬这个章节目录规则该怎么写。

    详情页的章节目录需要点击按钮后,才会触发循环请求章节数据,返回html 的json数据,请问各位大佬这个章节目录规则该怎么写。

    1、详情页的章节目录需要点击按钮后,才会触发循环请求章节数据,返回html 的json数据,请问各位大佬这个章节目录规则该怎么写。

    书库网站:https://www.idejian.com/

    2、java.ajax 支持设置heads 吗?

    3 、能否访问请求网络?

    <js>
    var map = new Map();
    map.set('User-Agent', "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4356.6 Safari/537.36");
    java.get("https://m.idejian.com/catalog?bookId=12524852", map);
    </js>
    

    //实现重定向拦截,返回Connection.Response java.get(url: String, headers: Map<String, String>) java.post(urlStr: String, body: String, headers: Map<String, String>)

    @gedoor 大佬这种能处理吗?

    需求 
    opened by wpyok500 13
  • [BUG] 本地(本机)的文件无法开启

    [BUG] 本地(本机)的文件无法开启

    机型(如Redmi K30 Pro)

    安卓版本(如Android 7.1.1)

    6.0.1

    阅读Legdao版本(我的-关于-版本,如3.20.112220)

    3.22.010310

    网络环境(移动,联通,电信,移动宽带,联通宽带,电信宽带,等等..)

    WI-FI

    问题描述(简要描述发生的问题)

    我的本地txt文件没办法开启

    使用书源(填写URL或者JSON)

    复现步骤(详细描述导致问题产生的操作步骤,如果能稳定复现)

    日志提交(问题截图或者日志)

    Screenshot_20220103-203101

    BUG 已解决 
    opened by a8214983 13
  • 做了一个简版的书籍同步

    做了一个简版的书籍同步

    根据这里的 #1418 设想,花了几天搞了搞,初版是差不多完成了,已经基本可用,不过还未多加测试,所以先提个PR可以让作者看看问题。 已经实现了:

    1. 上传某本本地书籍到 Webdav
    2. 查看WebDav目录下的书籍文件
    3. 下载某个书籍到本地,并自动导入

    不过,还有许多问题需要改善:

    1. 如何判断一本书是否已经导入?目前获取远程书籍信息只能得到名字,大小等信息,但是如何根据本地书籍的信息判定远程这本书是否已经导入,我这边还没有思路
    2. 自动上传,也就是如果有本地导入的书籍在远程中不存在,那么则可以提示或者直接自动上传到远程
    3. 还有一些界面交互上的逻辑问题,可能需要慢慢来等等......
    opened by qianfanguojin 12
  • 希望在WebDev备份文件夹里放一个指引如何手动恢复的txt文件。

    希望在WebDev备份文件夹里放一个指引如何手动恢复的txt文件。

    确认

    • [X] 搜索现有issues,不存在相似或相关的issue

    功能描述

    在WebDev备份文件夹里放一个指引文件。

    期望实现方式

    备份时同时检测是否存在说明文件,无则生成一个。

    附加信息

    前些天手机坏了,所以去手动恢复数据。搞了半天才发现需要解压zip到设定的文件夹才能恢复。

    效果演示

    No response

    需求 
    opened by huangsijun17 3
  • 响应Win WSA media play pause button

    响应Win WSA media play pause button

    确认

    • [X] 搜索现有issues,不存在相似或相关的issue

    功能描述

    WSA下media play/pause没反应 试了几个别的app Google Play books可以

    期望实现方式

    Media play pause button start TTS reading, 像手机一样,最好也能把死了的app在后台拉活,像手机一样,很棒。

    附加信息

    No response

    效果演示

    No response

    需求 
    opened by gzyguo 0
  • 从AOSP的文件管理器里的Android Samba Client添加的局域网文件夹打开书籍的时候报错

    从AOSP的文件管理器里的Android Samba Client添加的局域网文件夹打开书籍的时候报错

    确认

    • [X] 搜索现有issues,不存在相似或相关的issue
    • [X] 最新测试版依然存在此问题
    • [X] 此问题和Xposed、Lsposed、Magisk、手机主题、浏览器插件等无关

    问题描述

    Attempt to invoke interface method booleanjava.util.Enumeration.hasMoreElements(' on a nullobject reference

    是epub

    复现步骤

    从AOSP的文件管理器里的Android Samba Client添加的局域网文件夹打开书籍的时候报错

    日志提交

    No response

    阅读版本

    3.22.110823

    Android版本

    12

    机型

    Oneplus 7 Pro

    其他信息

    No response

    BUG 
    opened by gzyguo 2
  • 两端对齐时会拉断破折号

    两端对齐时会拉断破折号

    确认

    • [X] 搜索现有issues,不存在相似或相关的issue
    • [X] 最新测试版依然存在此问题
    • [X] 此问题和Xposed、Lsposed、Magisk、手机主题、浏览器插件等无关

    问题描述

    设置为"文字两端对齐"时, 破折号被拉断, 见截图中两处破折号的不同

    复现步骤

    设置为"文字两端对齐"时, 找一本含破折号比较多的书, 总会遇到的

    日志提交

    image

    阅读版本

    3.23.01052249

    Android版本

    Android 9

    机型

    文石 Nova2

    其他信息

    [物语系列][01卷]化物语(上).zip

    似乎还有部分图片无法显示的问题

    BUG 
    opened by entr0pia 0
Releases(3.23.010719)
  • 3.23.010719(Jan 7, 2023)

  • 3.22.122419(Dec 24, 2022)

  • 3.22.121521(Dec 15, 2022)

  • 3.22.121018(Dec 10, 2022)

  • 3.22.120121(Dec 1, 2022)

  • 3.22.112222(Nov 22, 2022)

    2022/11/22

    • 修复朗读长时间暂停后恢复时朗读速度可能不对的bug
    • addBookshelf url参数添加origin,可以指定书源
    • 通过增加特定标识使用无UA请求,适用于网络导入书源等,用法:http://xxx.xxx/xxxx#requestWithoutUA
    • 修复cookie.getCookie(source.getKey())返回的cookie不及时的bug
    • 书签添加导出功能
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.112222.apk(12.84 MB)
  • 3.22.111423(Nov 14, 2022)

  • 3.22.110823(Nov 8, 2022)

  • 3.22.102918(Oct 29, 2022)

    2022/10/29

    • 更新cronet: 107.0.5304.91
    • 朗读菜单的闹钟点击后可以保存设定时间,下次启动朗读自动设定时间,调不了时间、朗读固定的时间后停止的把进度条拉到0然后点一下闹钟就可以了 by Horis
    • 多页目录和正文添加并发访问限制
    • 阅读界面点击区域支持更多选项,中间区域也可设置
    • 朗读服务和音频服务添加唤醒锁配置
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.102918.apk(15.16 MB)
  • 3.22.102223(Oct 22, 2022)

  • 3.22.102020(Oct 20, 2022)

    2022/10/20

    • 优化搜索范围的选择,不改变原来的使用习惯
    • 添加web服务唤醒锁开关,默认关闭,有些手机开启唤醒锁会被杀后台
    • 添加设备名称设置,会在webdav备份文件名上显示 by 821938089
    • 添加禁用滚动点击动画设置 by 821938089
    • 移除子文件夹为空检查 by 821938089
    • 重构httpTTS部分代码 by 821938089
    • 使用事件总线的方式来调用手动翻页/下一章朗读,可能可以解决只能读一章的问题 by 821938089
    • 修复并发率判断可能会发生死锁的问题 by 821938089
    • 精简一些代码 by 821938089
    • 优化web源编辑和web书架 by Xwite
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.102020.apk(15.11 MB)
  • 3.22.101712(Oct 17, 2022)

  • 3.22.101709(Oct 17, 2022)

  • 3.22.101619(Oct 16, 2022)

  • 3.22.101421(Oct 14, 2022)

    2022/10/14

    • 更新cronet: 106.0.5249.126
    • 替换规则支持js,可以用js判断匹配到的内容决定替换为什么,匹配到的内容变量为result,替换为@js:开头则自动采用js判断替换内容
    • 书架管理添加筛选功能
    • 搜索支持搜索范围多分组和单书源设置
    • 书源管理界面书源菜单添加单书源搜索书籍功能
    • 复web阅读时app未退出阅读界面导致的进度bug by Xwite
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.101421.apk(19.50 MB)
  • 3.22.100921(Oct 9, 2022)

    2022/10/09

    • 添加源编辑输入框最大行数设置
    • 添加正文阅读界面进度条(本章/整本)设置 by 821938089
    • 优化下拉加载更多相关界面
    • 修复横屏竖屏切换后主题改变的bug by 821938089
    • 优化章节替换净化 by Xwite
    • 封面支持svg 正文img标签支持svg图片链接 by Xwite
    • 调整申请设置书籍保存位置的时机 by Xwite
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.100921.apk(19.32 MB)
  • 3.22.100521(Oct 5, 2022)

    2022/10/05

    • 优化书架数据库查询速度
    • 如果WebDav的书籍比本地新,详情页的刷新可以更新本地书籍,之前的书籍不行没有记录远程书籍地址
    • 本地文件被删除如果记录了webDav地址会自动下载webDav书籍 by Xwite
    • 一些优化 by 821938089
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.100521.apk(19.23 MB)
  • 3.22.100210(Oct 1, 2022)

    2022/10/02

    • 更新cronet: 106.0.5249.79
    • 正文选择菜单朗读按钮长按可切换朗读选择内容和从选择开始处一直朗读
    • 源编辑输入框设置最大行数12,在行数特别多的时候更容易滚动到其它输入
    • 修复某些情况下无法搜索到标题的bug,净化规则较多的可能会降低搜索速度 by Xwite
    • 修复文件类书源换源后阅读bug by Xwite
    • Cronet 支持DnsHttpsSvcb by g2s20150909
    • 修复web进度同步问题 by 821938089
    • 启用混淆以减小app大小 有bug请带日志反馈
    • 其它一些优化
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.100210.apk(19.22 MB)
  • 3.22.092618(Sep 26, 2022)

  • 3.22.092400(Sep 23, 2022)

  • 3.22.092220(Sep 22, 2022)

  • 3.22.092020(Sep 20, 2022)

    2022/09/20

    • 发现为空时不校验
    • 订阅添加刷新分类功能,菜单中
    • 修复webView因为不支持新夜间模式导致的崩溃
    • 修复阅读背景分主题设置bug by 821938089
    • 修复朗读高亮位置不对的问题 by 821938089
    • 添加忽略音频焦点设置 by 821938089
    • 优化web端写源 by Xwite
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.092020.apk(19.16 MB)
  • 3.22.091920(Sep 19, 2022)

    2022/09/19

    • 发现为空时不校验
    • 订阅添加刷新分类功能,菜单中
    • 修复webView因为不支持新夜间模式导致的崩溃
    • 修复阅读背景分主题设置bug by 821938089
    • 修复朗读高亮位置不对的问题 by 821938089
    • 添加忽略音频焦点设置 by 821938089
    • 优化web端写源 by Xwite
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.091920.apk(19.16 MB)
  • 3.22.091719(Sep 17, 2022)

  • 3.22.091613(Sep 16, 2022)

    2022/09/16

    • 更新cronet: 105.0.5195.136
    • SDK 更新到 33
    • 修复一些对话框可能会被键盘遮住的问题
    • 自带的未分组包含本地和音频未分组
    • 编辑书源分组时?中添加了插入分组功能
    • 添加图片解密规则 by Xwite
    • 优化在线TTS by 821938089
    • 更新web端书源编辑 by jgckM
    • 修复仿真翻页点击时翻页动画异常,化仿真翻页点击翻页效果 by 821938089
    • 其它一些优化
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.091613.apk(19.51 MB)
  • 3.22.091520(Sep 15, 2022)

    2022/09/15

    • 更新cronet: 105.0.5195.136
    • SDK 更新到 33
    • 修复一些对话框可能会被键盘遮住的问题
    • 自带的未分组包含本地和音频未分组
    • 编辑书源分组时?中添加了插入分组功能
    • 添加图片解密规则 by Xwite
    • 优化在线TTS by 821938089
    • 更新web端书源编辑 by jgckM
    • 修复仿真翻页点击时翻页动画异常,化仿真翻页点击翻页效果 by 821938089
    • 其它一些优化
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.091520.apk(19.53 MB)
  • 3.22.083120(Aug 31, 2022)

  • 3.22.082409(Aug 24, 2022)

  • 3.22.081920(Aug 19, 2022)

    2022/08/19

    • 更新cronet: 104.0.5112.97
    • 现在选择文本朗读会从选择处一直往下朗读,朗读更方便
    • 阅读界面的TXT目录正则 弹框中也支持正则标题示例
    • 一些优化 by 821938089
    • 优化epub封面加载,修复图片读取,修复目录索引问题
    • 本地内容获取时尝试HTML实体解码,优化报错提示和添加日志
    • 优化书源校验,注释Error行
    • 订阅源、书架管理添加选中所选区间
    • 优化订阅源分组显示已启用分组,订阅源管理增加已启用、已禁用、需要登录、未分组分组
    • 订阅源长按菜单添加禁用源、分组管理排序
    • 添加返回时提示放入书架设置
    • 优化备份设置子文件夹对话框内容显示和校验
    • 修复搜索手动停止滑到底又重新搜索
    Source code(tar.gz)
    Source code(zip)
    legado_app_3.22.081920.apk(19.03 MB)
  • 3.22.080322(Aug 3, 2022)