From c71df4d60b94e0c8251c02b64191acbb48264f70 Mon Sep 17 00:00:00 2001 From: SYH <1017401752@qq.com> Date: Mon, 16 Dec 2024 23:13:22 +0800 Subject: [PATCH] 1 --- .../com/monke/monkeybook/common/RxBusTag.java | 24 ++-- .../monkeybook/common/api/IEasouApi.java | 75 +++++++----- .../monkeybook/common/api/IGxwztvApi.java | 110 ++++++++++-------- .../common/api/ILingdiankanshuApi.java | 75 +++++++----- 4 files changed, 164 insertions(+), 120 deletions(-) diff --git a/app/src/main/java/com/monke/monkeybook/common/RxBusTag.java b/app/src/main/java/com/monke/monkeybook/common/RxBusTag.java index 22a3afa..d317255 100644 --- a/app/src/main/java/com/monke/monkeybook/common/RxBusTag.java +++ b/app/src/main/java/com/monke/monkeybook/common/RxBusTag.java @@ -1,25 +1,25 @@ -//Copyright (c) 2017. 章钦豪. All rights reserved. +//定义当前类所在的包路径为"com.monke.monkeybook.common",表明它属于"monkeybook"项目的公共部分 package com.monke.monkeybook.common; - +//定义一个名为 RxBusTag 的公共类,包含一组常量字符串,用于标识RxBus事件 public class RxBusTag { - + //定义一个静态常量字符串,表示添加书籍的事件 public final static String HAD_ADD_BOOK = "rxbus_add_book"; - + //定义一个静态常量字符串,表示移除书籍的事件 public final static String HAD_REMOVE_BOOK = "rxbus_remove_book"; - + //定义一个静态常量字符串,表示更新书籍进度的事件 public final static String UPDATE_BOOK_PROGRESS = "rxbus_update_book_progress"; - + //定义一个静态常量字符串,表示暂停下载的监听事件 public final static String PAUSE_DOWNLOAD_LISTENER = "rxbus_pause_download_listener"; - + //定义一个静态常量字符串,表示下载进度监听事件 public final static String PROGRESS_DOWNLOAD_LISTENER = "rxbus_progress_download_listener"; - + //定义一个静态常量字符串,表示下载完成监听事件 public final static String FINISH_DOWNLOAD_LISTENER = "rxbus_finish_download_listener"; - + //定义一个静态常量字符串,表示暂停下载的事件 public final static String PAUSE_DOWNLOAD = "rxbus_pause_download"; - + //定义一个静态常量字符串,表示开始下载的事件 public final static String START_DOWNLOAD = "rxbus_start_download"; - + //定义一个静态常量字符串,表示取消下载的事件 public final static String CANCEL_DOWNLOAD = "rxbus_cancel_download"; - + //定义一个静态常量字符串,表示添加下载任务的事件 public final static String ADD_DOWNLOAD_TASK = "rxbus_add_download_task"; } diff --git a/app/src/main/java/com/monke/monkeybook/common/api/IEasouApi.java b/app/src/main/java/com/monke/monkeybook/common/api/IEasouApi.java index c631ded..90aeb92 100644 --- a/app/src/main/java/com/monke/monkeybook/common/api/IEasouApi.java +++ b/app/src/main/java/com/monke/monkeybook/common/api/IEasouApi.java @@ -1,44 +1,59 @@ -//Copyright (c) 2017. 章钦豪. All rights reserved. +//定义当前接口所在的包 com.monke.monkeybook.common.api +//这个包路径表示该接口用于应用程序的公共API部分。 package com.monke.monkeybook.common.api; - -import io.reactivex.Observable; -import retrofit2.http.GET; -import retrofit2.http.Headers; -import retrofit2.http.Url; +//引入所需要的库 +import io.reactivex.Observable; //导入Observable类,这是RxJava中的一个核心类,表示一个可以发射数据的流 +import retrofit2.http.GET; //导入Retrofit中的GET注解,用于表示一个HTTP GET请求 +import retrofit2.http.Headers; //导入Retrofit中的Headers注解,用于向HTTP请求添加自定义头部信息。 +import retrofit2.http.Url; //导入Retrofit中的Url注解,用于动态传递URL。 /** * 宜搜小说API (质量太差 废弃) */ +//定义一个接口IEasouApi,该接口包含了一些方法,用于与宜搜小说的API进行交互。 public interface IEasouApi { - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //定义获取书籍信息的方法,通过HTTP GET请求,并添加自定义请求头 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //返回值为Observable,这是一个异步操作,最后会返回一个String类型的数据流 + //@Url表示该方法接收一个动态URL作为参数 Observable getBookInfo(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //定义搜索书籍的方法,类似getBookInfo + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接受动态URL,返回书籍搜索结果 Observable searchBook(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //定义获取书籍内容的方法,类似前两个方法 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法获取书籍的内容,通过URL传递获取内容的地址 Observable getBookContent(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //定义获取章节列表的方法,同样类似上述方法 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法获取书籍的章节列表,通过URL传递获取章节的地址 Observable getChapterList(@Url String url); } diff --git a/app/src/main/java/com/monke/monkeybook/common/api/IGxwztvApi.java b/app/src/main/java/com/monke/monkeybook/common/api/IGxwztvApi.java index 16f1a8e..801dc20 100644 --- a/app/src/main/java/com/monke/monkeybook/common/api/IGxwztvApi.java +++ b/app/src/main/java/com/monke/monkeybook/common/api/IGxwztvApi.java @@ -1,61 +1,79 @@ -//Copyright (c) 2017. 章钦豪. All rights reserved. +//定义包名,表明该接口属于 "monkeybook" 项目中的 API 部分 package com.monke.monkeybook.common.api; +//引入所需的库 +import io.reactivex.Observable; //引入RxJava中的Observable,用于定义响应式流 +import retrofit2.http.Field; //引入Retrofit中的@Field 注解,用于表示POST请求中的表单字段 +import retrofit2.http.FormUrlEncoded; //引入Retrofit中的@FormUrlEncoded注解,用于标记表单请求 +import retrofit2.http.GET; //引入Retrofit中的@GET注解,用于定义GET请求 +import retrofit2.http.Headers; //引入Retrofit中的@Headers注解,用于添加HTTP请求头 +import retrofit2.http.Query; //引入Retrofit中的@Query注解,用于在URL中添加查询参数 +import retrofit2.http.Url; //引入Retrofit中的@Url注解,用于动态传递URL -import io.reactivex.Observable; -import retrofit2.http.Field; -import retrofit2.http.FormUrlEncoded; -import retrofit2.http.GET; -import retrofit2.http.Headers; -import retrofit2.http.Query; -import retrofit2.http.Url; - +//该API接口定义了与小说网站进行交互的方法,用于获取书籍信息、搜索书籍、获取书籍内容等。 public interface IGxwztvApi { - - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取书籍信息的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //设置请求头:接受的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接收一个动态URL,返回Observable,表示异步的响应数据流 Observable getBookInfo(@Url String url); - @GET("/search.htm") - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //搜索书籍的请求 + @GET("/search.htm") //定义固定的GET,请求路径为"/search.htm" + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //设置请求头:接受的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //使用@Query注解传递查询参数,表示关键词和页码 Observable searchBook(@Query("keyword")String content, @Query("pn")int page); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取书籍内容的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接收动态URL,返回书籍的内容 Observable getBookContent(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取章节列表的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接收动态URL,返回章节列表 Observable getChapterList(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取书籍类型相关书籍的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接收动态URL,返回该类型的书籍 Observable getKindBooks(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + // 获取图书馆数据的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //设置User-Agent,模拟浏览器请求 + "Accept-Charset:UTF-8", //设置字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //禁用缓存 + //该方法接收动态URL,返回图书馆相关的数据 Observable getLibraryData(@Url String url); } diff --git a/app/src/main/java/com/monke/monkeybook/common/api/ILingdiankanshuApi.java b/app/src/main/java/com/monke/monkeybook/common/api/ILingdiankanshuApi.java index af86c0e..66770f6 100644 --- a/app/src/main/java/com/monke/monkeybook/common/api/ILingdiankanshuApi.java +++ b/app/src/main/java/com/monke/monkeybook/common/api/ILingdiankanshuApi.java @@ -1,43 +1,54 @@ -//Copyright (c) 2017. 章钦豪. All rights reserved. +//定义包路径,表示该接口属于"monkeybook"项目中的公共API部分 package com.monke.monkeybook.common.api; +//引入所需的库 +import io.reactivex.Observable; //引入RxJava中的Observable类,表示异步流 +import retrofit2.http.GET; //引入Retrofit中的@GET注解,定义GET请求 +import retrofit2.http.Headers; //引入Retrofit中的 @Headers 注解,用于添加自定义请求头 +import retrofit2.http.Query; //引入Retrofit中的@Query注解,用于在URL中添加查询参数 +import retrofit2.http.Url; //引入Retrofit中的@Url注解,表示动态传递URL -import io.reactivex.Observable; -import retrofit2.http.GET; -import retrofit2.http.Headers; -import retrofit2.http.Query; -import retrofit2.http.Url; - +//该API接口定义了与零点看书小说网站进行交互的方法,用于获取书籍信息、搜索书籍、获取书籍内容等。 public interface ILingdiankanshuApi { - - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取书籍信息的请求 + @GET //定义GET请求 + //设置自定义的HTTP请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //模拟浏览器的User-Agent + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //请求头:禁用缓存 + //该方法接受一个动态URL,返回一个Observable类型的响应流,表示书籍信息 Observable getBookInfo(@Url String url); - @GET("/cse/search") - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //搜索书籍的请求 + @GET("/cse/search") //定义GET请求的URL路径"/cse/search" + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //模拟浏览器的User-Agent + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //请求头:禁用缓存 + //该方法接受三个查询参数:书籍关键词`q`,页码`p`,以及时间`s`,返回书籍搜索结果 Observable searchBook(@Query("q") String content, @Query("p") int page, @Query("s") String time); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + //获取书籍内容的请求 + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //模拟浏览器的User-Agent + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //请求头:禁用缓存 + //该方法接受一个动态URL,返回书籍内容 Observable getBookContent(@Url String url); - @GET - @Headers({"Accept:text/html,application/xhtml+xml,application/xml", - "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", - "Accept-Charset:UTF-8", - "Connection:close", - "Cache-Control:no-cache"}) + @GET //定义GET请求 + //设置请求头 + @Headers({"Accept:text/html,application/xhtml+xml,application/xml", //请求头:表示支持的响应类型 + "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", //模拟浏览器的User-Agent + "Accept-Charset:UTF-8", //请求头:指定字符集为 UTF-8 + "Connection:close", //请求头:请求完成后关闭连接 + "Cache-Control:no-cache"}) //请求头:禁用缓存 + //该方法接受一个动态URL,返回书籍的章节列表 Observable getChapterList(@Url String url); }