|
|
|
|
@ -8,28 +8,70 @@ import com.monke.monkeybook.listener.OnGetChapterListListener;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import io.reactivex.Observable;
|
|
|
|
|
|
|
|
|
|
// IWebBookModel接口定义了一系列与网络书籍相关操作的方法规范,
|
|
|
|
|
// 主要涉及从网络获取书籍各种信息(如书籍详情、目录、章节内容等)以及搜索不同类型书籍的功能,
|
|
|
|
|
// 具体的实现类会按照这些方法签名去实现对应的网络交互逻辑
|
|
|
|
|
public interface IWebBookModel {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 网络请求并解析书籍信息
|
|
|
|
|
* 网络请求并解析书籍信息的方法
|
|
|
|
|
*
|
|
|
|
|
* @param bookShelfBean 传入的BookShelfBean对象,它可能包含了部分初始的书籍相关标识信息等,
|
|
|
|
|
* 基于这些已有信息向网络发起请求,比如向某个网络书籍平台请求对应书籍的详细信息,
|
|
|
|
|
* 然后对获取到的数据进行解析处理,最终封装成完整的BookShelfBean对象返回
|
|
|
|
|
* @return 返回一个Observable对象,其泛型类型为BookShelfBean,用于异步地返回经过网络请求和解析后完整的书籍信息对象,
|
|
|
|
|
* 外部通过订阅这个Observable来获取书籍的详细信息,进而可用于展示、更新书架等后续操作
|
|
|
|
|
*/
|
|
|
|
|
Observable<BookShelfBean> getBookInfo(final BookShelfBean bookShelfBean);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 网络解析图书目录
|
|
|
|
|
* 网络解析图书目录的方法
|
|
|
|
|
*
|
|
|
|
|
* @param bookShelfBean 传入的BookShelfBean对象包含了用于定位特定书籍的必要信息,
|
|
|
|
|
* 依据这些信息向网络资源(比如对应的书籍网站服务器)请求该书籍的目录数据,
|
|
|
|
|
* 在获取目录的过程中或者获取完成后,通过传入的OnGetChapterListListener监听器来通知外部相关情况,
|
|
|
|
|
* 例如目录获取进度、成功获取目录或者获取失败等信息
|
|
|
|
|
* @param getChapterListListener 一个监听器对象,用于监听获取图书目录的各种情况,
|
|
|
|
|
* 外部可以通过实现该监听器的相应方法来处理这些不同事件,
|
|
|
|
|
* 比如在界面上展示目录获取进度条,或者将获取到的目录数据进行展示等操作
|
|
|
|
|
*/
|
|
|
|
|
void getChapterList(final BookShelfBean bookShelfBean,OnGetChapterListListener getChapterListListener);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 章节缓存
|
|
|
|
|
* 章节缓存的方法
|
|
|
|
|
*
|
|
|
|
|
* @param durChapterUrl 表示具体章节对应的URL地址,通过这个URL可以准确地定位到需要获取缓存内容的章节资源所在网络位置,
|
|
|
|
|
* 它是从网络上获取该章节原始数据的链接地址,用于准确获取相应章节内容
|
|
|
|
|
* @param durChapterIndex 章节的索引值,用于标识章节在整本书中的顺序位置等信息,方便在缓存操作以及后续展示、使用章节内容时,
|
|
|
|
|
* 准确区分不同章节,例如按照章节顺序展示阅读内容时就依赖这个索引值来确定先后顺序
|
|
|
|
|
* @param tag 额外的标识字符串,可能用于区分不同类型的缓存场景、不同来源的章节数据或者在缓存管理中起其他辅助标识作用等
|
|
|
|
|
* @return 返回一个Observable对象,其泛型类型为BookContentBean,用于异步地返回章节缓存内容对应的Bean对象,
|
|
|
|
|
* 外部通过订阅这个Observable来获取章节的缓存数据,比如章节的具体文本内容等,方便后续展示、阅读章节内容的操作
|
|
|
|
|
*/
|
|
|
|
|
Observable<BookContentBean> getBookContent(final String durChapterUrl, final int durChapterIndex, String tag);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取分类书籍
|
|
|
|
|
* 获取分类书籍的方法
|
|
|
|
|
*
|
|
|
|
|
* @param url 对应获取分类书籍数据的请求地址,通过这个URL向相应的网络资源(可能是某个书籍分类页面所在的网络地址)发起请求,
|
|
|
|
|
* 以获取指定分类下的书籍信息,比如向小说网站的玄幻分类页面地址发起请求获取玄幻类书籍列表
|
|
|
|
|
* @param page 页码参数,用于指定要获取第几页的分类书籍数据,实现分页获取,便于在书籍数量较多时进行分批展示和处理,
|
|
|
|
|
* 例如只获取分类书籍列表中的第2页数据等情况就通过这个参数指定
|
|
|
|
|
* @return 返回一个Observable对象,其泛型类型为List<SearchBookBean>,用于异步地返回获取到的指定分类下对应页面的书籍信息列表,
|
|
|
|
|
* 外部可通过订阅该Observable来处理获取到的书籍数据,例如在界面上展示分类书籍列表、进行筛选排序等操作
|
|
|
|
|
*/
|
|
|
|
|
Observable<List<SearchBookBean>> getKindBook(String url,int page);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 其他站点资源整合搜索
|
|
|
|
|
* 其他站点资源整合搜索的方法
|
|
|
|
|
*
|
|
|
|
|
* @param content 用于指定搜索的关键字内容,一般可以是书籍的名称、作者名或者相关的关键词等,
|
|
|
|
|
* 通过这些关键字去多个其他相关的网络书籍站点进行搜索,查找匹配的书籍信息
|
|
|
|
|
* @param page 页码参数,用于分页获取搜索结果,当搜索到的结果较多时,通过指定不同的页码可以获取到相应页面的书籍列表,
|
|
|
|
|
* 便于分批展示和处理搜索到的书籍数据,比如获取搜索结果的第3页数据等情况就通过该参数指定
|
|
|
|
|
* @param tag 额外的标识字符串,可能用于区分不同的搜索场景、不同的站点范围或者在搜索结果整合处理中起其他辅助标识作用等
|
|
|
|
|
* @return 返回一个Observable对象,其泛型类型为List<SearchBookBean>,用于异步地返回根据关键字和页码在其他站点搜索到的书籍信息列表,
|
|
|
|
|
* 外部可以通过订阅这个Observable来接收和处理搜索结果,例如在界面上展示整合后的搜索书籍列表等操作
|
|
|
|
|
*/
|
|
|
|
|
Observable<List<SearchBookBean>> searchOtherBook(String content,int page,String tag);
|
|
|
|
|
}
|
|
|
|
|
}
|