legado/api.md
2023-07-08 16:45:31 +08:00

294 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阅读[API](/app/src/main/java/io/legado/app/api/controller)
## 对于[Web](/app/src/main/java/io/legado/app/web/)的配置
您需要先在设置中启用"Web 服务"。
## 使用
### Web
以下说明假设您的操作在本机进行且开放端口为1234。
如果您要从远程计算机访问[阅读](),请将`127.0.0.1`替换成手机IP。
#### 插入单个书源
请求BODY内容为`JSON`字符串,
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)
```
URL = http://127.0.0.1:1234/saveBookSource
Method = POST
```
#### 插入多个书源or订阅源
请求BODY内容为`JSON`字符串,
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)**为数组格式**。
```
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`字符串,
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt)**为数组格式**。
```
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`字符串,
替换规则参考[这个文件](/app/src/main/java/io/legado/app/data/entities/ReplaceRule.kt)。
##### 删除
```
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`字符串,
格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/Book.kt)。
```
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
```