legado/api.md
2023-04-07 09:17:29 +08:00

6.3 KiB
Raw Blame History

阅读API

对于Web的配置

您需要先在设置中启用"Web 服务"。

使用

Web

以下说明假设您的操作在本机进行且开放端口为1234。
如果您要从远程计算机访问阅读,请将127.0.0.1替换成手机IP。

插入单个书源

请求BODY内容为JSON字符串,
格式参考这个文件

URL = http://127.0.0.1:1234/saveSource
Method = POST

插入多个书源or订阅源

请求BODY内容为JSON字符串,
格式参考这个文件为数组格式

URL = http://127.0.0.1:1234/saveBookSources
URL = http://127.0.0.1:1234/saveRssSources
Method = POST

获取书源

URL = http://127.0.0.1:1234/getBookSource?url=xxx
URL = http://127.0.0.1:1234/getRssSource?url=xxx
Method = GET

获取所有书源or订阅源

URL = http://127.0.0.1:1234/getBookSources
URL = http://127.0.0.1:1234/getRssSources
Method = GET

删除多个书源or订阅源

请求BODY内容为JSON字符串,
格式参考这个文件为数组格式

URL = http://127.0.0.1:1234/deleteBookSources
URL = http://127.0.0.1:1234/deleteRssSources
Method = POST

调试源

key为书源搜索关键词tag为源链接

URL = ws://127.0.0.1:1235/bookSourceDebug
URL = ws://127.0.0.1:1235/rssSourceDebug
Message = { key: [String], tag: [String] }

获取替换规则

URL = http://127.0.0.1:1234/getReplaceRules
Method = GET

替换规则管理

请求BODY内容为JSON字符串,
替换规则参考这个文件

删除
URL = http://127.0.0.1:1234/deleteReplaceRule
Method = POST
Body = [ReplaceRule]
插入
URL = http://127.0.0.1:1234/saveReplaceRule
Method = POST
Body = [ReplaceRule]
测试

返回测试文本text替换结果

URL = http://127.0.0.1:1234/testReplaceRule
Method = POST
Body = { rule: [ReplaceRule], text: [String] }

搜索在线书籍

若想获取对应的书籍的目录正文 请先插入书籍以启用缓存,如果试读后决定不添加到书籍,请删除书籍

URL = ws://127.0.0.1:1235/searchBook
Message = { key: [String] }

插入书籍

请求BODY内容为JSON字符串,
格式参考这个文件

URL = http://127.0.0.1:1234/saveBook
Method = POST

删除书籍

URL = http://127.0.0.1:1234/deleteBook
Method = POST
#### 获取所有书籍

URL = http://127.0.0.1:1234/getBookshelf Method = GET


获取APP内的所有书籍。

#### 获取书籍章节列表

URL = http://127.0.0.1:1234/getChapterList?url=xxx Method = GET


获取指定图书的章节列表。

#### 获取书籍内容

URL = http://127.0.0.1:1234/getBookContent?url=xxx&index=1 Method = GET


获取指定图书的第`index`章节的文本内容。

#### 获取封面

URL = http://127.0.0.1:1234/cover?path=xxxxx Method = GET


#### 获取正文图片

URL = http://127.0.0.1:1234/image?url=${bookUrl}&path=${picUrl}&width=${width} Method = GET


#### 保存书籍进度

请求BODY内容为`JSON`字符串,  
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookProgress.kt)。

URL = http://127.0.0.1:1234/saveBookProgress Method = POST


### [Content Provider](/app/src/main/java/io/legado/app/api/ReaderProvider.kt)


* 需声明`io.legado.READ_WRITE`权限
* `providerHost`为`包名.readerProvider`, 如`io.legado.app.release.readerProvider`,不同包的地址不同,防止冲突安装失败
* 以下出现的`providerHost`请自行替换

#### 插入单个书源or订阅源

创建`Key="json"`的`ContentValues`,内容为`JSON`字符串,  
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)

URL = content://providerHost/bookSource/insert URL = content://providerHost/rssSource/insert Method = insert


#### 插入多个书源or订阅源

创建`Key="json"`的`ContentValues`,内容为`JSON`字符串,  
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)**为数组格式**。

URL = content://providerHost/bookSources/insert URL = content://providerHost/rssSources/insert Method = insert


#### 获取书源or订阅源

获取指定URL对应的书源信息。  
用`Cursor.getString(0)`取出返回结果。

URL = content://providerHost/bookSource/query?url=xxx URL = content://providerHost/rssSource/query?url=xxx Method = query


#### 获取所有书源or订阅源

获取APP内的所有订阅源。  
用`Cursor.getString(0)`取出返回结果。

URL = content://providerHost/bookSources/query URL = content://providerHost/rssSources/query Method = query


#### 删除多个书源or订阅源

创建`Key="json"`的`ContentValues`,内容为`JSON`字符串,  
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)**为数组格式**。

URL = content://providerHost/bookSources/delete URL = content://providerHost/rssSources/delete Method = delete


#### 插入书籍

创建`Key="json"`的`ContentValues`,内容为`JSON`字符串,  
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/Book.kt)。

URL = content://providerHost/book/insert Method = insert


#### 获取所有书籍

获取APP内的所有书籍。  
用`Cursor.getString(0)`取出返回结果。

URL = content://providerHost/books/query Method = query


#### 获取书籍章节列表

获取指定图书的章节列表。   
用`Cursor.getString(0)`取出返回结果。

URL = content://providerHost/book/chapter/query?url=xxx Method = query


#### 获取书籍内容

获取指定图书的第`index`章节的文本内容。     
用`Cursor.getString(0)`取出返回结果。

URL = content://providerHost/book/content/query?url=xxx&index=1 Method = query


#### 获取封面

URL = content://providerHost/book/cover/query?path=xxxx Method = query