mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2025-12-16 12:23:03 +00:00
fixed. 123跨区下载错误
This commit is contained in:
19
README.md
19
README.md
@@ -38,6 +38,8 @@ https://nfd-parser.github.io/nfd-preview/preview.html?src=https%3A%2F%2Flz.qaiu.
|
|||||||
|
|
||||||
**解析器模块文档:** [parser/README.md](parser/README.md)
|
**解析器模块文档:** [parser/README.md](parser/README.md)
|
||||||
|
|
||||||
|
**JavaScript解析器文档:** [JavaScript解析器开发指南](parser/doc/JAVASCRIPT_PARSER_GUIDE.md) | [自定义解析器扩展指南](parser/doc/CUSTOM_PARSER_GUIDE.md) | [快速开始](parser/doc/CUSTOM_PARSER_QUICKSTART.md)
|
||||||
|
|
||||||
## 预览地址
|
## 预览地址
|
||||||
[预览地址1](https://lz.qaiu.top)
|
[预览地址1](https://lz.qaiu.top)
|
||||||
[预览地址2](https://lzzz.qaiu.top)
|
[预览地址2](https://lzzz.qaiu.top)
|
||||||
@@ -406,6 +408,23 @@ proxy:
|
|||||||
nfd-proxy搭建http代理服务器
|
nfd-proxy搭建http代理服务器
|
||||||
参考https://github.com/nfd-parser/nfd-proxy
|
参考https://github.com/nfd-parser/nfd-proxy
|
||||||
|
|
||||||
|
### 认证信息配置说明
|
||||||
|
部分网盘(如123)解析大文件时需要登录认证,可以在配置文件中添加认证信息。
|
||||||
|
|
||||||
|
修改配置文件:
|
||||||
|
app-dev.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
### 解析认证相关
|
||||||
|
auths:
|
||||||
|
# 123:配置用户名密码
|
||||||
|
ye:
|
||||||
|
username: 你的用户名
|
||||||
|
password: 你的密码
|
||||||
|
```
|
||||||
|
|
||||||
|
**注意:** 目前仅支持 123(ye)的认证配置。
|
||||||
|
|
||||||
## 开发计划
|
## 开发计划
|
||||||
### v0.1.8~v0.1.9 ✓
|
### v0.1.8~v0.1.9 ✓
|
||||||
- API添加文件信息(专属版/开源版)
|
- API添加文件信息(专属版/开源版)
|
||||||
|
|||||||
@@ -95,7 +95,9 @@ String url = tool.parseSync();
|
|||||||
|
|
||||||
## 文档
|
## 文档
|
||||||
- parser/doc/README.md:解析约定、示例、IDEA `.http` 调试
|
- parser/doc/README.md:解析约定、示例、IDEA `.http` 调试
|
||||||
- **parser/doc/CUSTOM_PARSER_GUIDE.md:自定义解析器扩展完整指南**
|
- **parser/doc/JAVASCRIPT_PARSER_GUIDE.md:JavaScript解析器开发完整指南** - 使用JavaScript编写自定义解析器
|
||||||
|
- **parser/doc/CUSTOM_PARSER_GUIDE.md:自定义解析器扩展完整指南** - Java自定义解析器扩展
|
||||||
|
- **parser/doc/CUSTOM_PARSER_QUICKSTART.md:自定义解析器快速开始** - 快速上手指南
|
||||||
|
|
||||||
## 目录
|
## 目录
|
||||||
- src/main/java/cn/qaiu/entity:通用实体(如 FileInfo)
|
- src/main/java/cn/qaiu/entity:通用实体(如 FileInfo)
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
本模块支持用户自定义解析器扩展。用户在依赖本项目的 Maven 坐标后,可以实现自己的网盘解析器并注册到系统中使用。
|
本模块支持用户自定义解析器扩展。用户在依赖本项目的 Maven 坐标后,可以实现自己的网盘解析器并注册到系统中使用。
|
||||||
|
|
||||||
|
> **提示**:除了Java自定义解析器,本项目还支持使用JavaScript编写解析器,无需编译即可使用。
|
||||||
|
> 查看 [JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md) 了解更多。
|
||||||
|
|
||||||
## 核心组件
|
## 核心组件
|
||||||
|
|
||||||
### 1. CustomParserConfig
|
### 1. CustomParserConfig
|
||||||
@@ -491,6 +494,12 @@ A: 不可以。自定义解析器只能通过 `fromType` 方法创建。如果
|
|||||||
### Q5: 解析器需要依赖外部服务怎么办?
|
### Q5: 解析器需要依赖外部服务怎么办?
|
||||||
A: 可以在解析器类中注入依赖,或使用单例模式管理外部服务连接。
|
A: 可以在解析器类中注入依赖,或使用单例模式管理外部服务连接。
|
||||||
|
|
||||||
|
## 相关文档
|
||||||
|
|
||||||
|
- [JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md) - 使用JavaScript编写解析器,无需编译
|
||||||
|
- [自定义解析器快速开始](CUSTOM_PARSER_QUICKSTART.md) - 快速上手指南
|
||||||
|
- [解析器开发文档](README.md) - 解析器开发约定和规范
|
||||||
|
|
||||||
## 贡献
|
## 贡献
|
||||||
|
|
||||||
如果你实现了通用的网盘解析器,欢迎提交 PR 将其加入到内置解析器中!
|
如果你实现了通用的网盘解析器,欢迎提交 PR 将其加入到内置解析器中!
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# 自定义解析器快速开始
|
# 自定义解析器快速开始
|
||||||
|
|
||||||
|
> **提示**:除了Java自定义解析器,本项目还支持使用JavaScript编写解析器,无需编译即可使用。
|
||||||
|
> 查看 [JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md) 了解更多。
|
||||||
|
|
||||||
## 5分钟快速集成指南
|
## 5分钟快速集成指南
|
||||||
|
|
||||||
### 步骤1: 添加依赖(pom.xml)
|
### 步骤1: 添加依赖(pom.xml)
|
||||||
@@ -266,6 +269,12 @@ public class ParserConfig {
|
|||||||
- 🔍 查看[测试代码](../src/test/java/cn/qaiu/parser/CustomParserTest.java)了解更多示例
|
- 🔍 查看[测试代码](../src/test/java/cn/qaiu/parser/CustomParserTest.java)了解更多示例
|
||||||
- 💡 参考[内置解析器](../src/main/java/cn/qaiu/parser/impl/)了解最佳实践
|
- 💡 参考[内置解析器](../src/main/java/cn/qaiu/parser/impl/)了解最佳实践
|
||||||
|
|
||||||
|
## 相关文档
|
||||||
|
|
||||||
|
- [自定义解析器扩展完整指南](CUSTOM_PARSER_GUIDE.md) - Java自定义解析器详细文档
|
||||||
|
- [JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md) - 使用JavaScript编写解析器
|
||||||
|
- [解析器开发文档](README.md) - 解析器开发约定和规范
|
||||||
|
|
||||||
## 技术支持
|
## 技术支持
|
||||||
|
|
||||||
遇到问题?
|
遇到问题?
|
||||||
|
|||||||
@@ -62,9 +62,56 @@ function parse(shareLinkInfo, http, logger) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. 重启应用
|
### 2. 解析器加载路径
|
||||||
|
|
||||||
重启应用后,JavaScript解析器会自动加载并注册。
|
JavaScript解析器支持两种加载方式:
|
||||||
|
|
||||||
|
#### 内置解析器(jar包内)
|
||||||
|
- **位置**:jar包内的 `custom-parsers/` 资源目录
|
||||||
|
- **特点**:随jar包一起发布,无需额外配置
|
||||||
|
- **路径**:`parser/src/main/resources/custom-parsers/`
|
||||||
|
|
||||||
|
#### 外部解析器(用户自定义)
|
||||||
|
- **默认位置**:应用运行目录下的 `./custom-parsers/` 文件夹
|
||||||
|
- **配置方式**(优先级从高到低):
|
||||||
|
1. **系统属性**:`-Dparser.custom-parsers.path=/path/to/your/parsers`
|
||||||
|
2. **环境变量**:`PARSER_CUSTOM_PARSERS_PATH=/path/to/your/parsers`
|
||||||
|
3. **默认路径**:`./custom-parsers/`(相对于应用运行目录)
|
||||||
|
|
||||||
|
#### 配置示例
|
||||||
|
|
||||||
|
**Maven项目中使用:**
|
||||||
|
```bash
|
||||||
|
# 方式1:系统属性
|
||||||
|
mvn exec:java -Dexec.mainClass="your.MainClass" -Dparser.custom-parsers.path=./src/main/resources/custom-parsers
|
||||||
|
|
||||||
|
# 方式2:环境变量
|
||||||
|
export PARSER_CUSTOM_PARSERS_PATH=./src/main/resources/custom-parsers
|
||||||
|
mvn exec:java -Dexec.mainClass="your.MainClass"
|
||||||
|
```
|
||||||
|
|
||||||
|
**jar包运行时:**
|
||||||
|
```bash
|
||||||
|
# 方式1:系统属性
|
||||||
|
java -Dparser.custom-parsers.path=/path/to/your/parsers -jar your-app.jar
|
||||||
|
|
||||||
|
# 方式2:环境变量
|
||||||
|
export PARSER_CUSTOM_PARSERS_PATH=/path/to/your/parsers
|
||||||
|
java -jar your-app.jar
|
||||||
|
```
|
||||||
|
|
||||||
|
**Docker部署:**
|
||||||
|
```bash
|
||||||
|
# 挂载外部解析器目录
|
||||||
|
docker run -d -v /path/to/your/parsers:/app/custom-parsers your-image
|
||||||
|
|
||||||
|
# 或使用环境变量
|
||||||
|
docker run -d -e PARSER_CUSTOM_PARSERS_PATH=/app/custom-parsers your-image
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 重启应用
|
||||||
|
|
||||||
|
重启应用后,JavaScript解析器会自动加载并注册。查看应用日志确认解析器是否成功加载。
|
||||||
|
|
||||||
## 元数据格式
|
## 元数据格式
|
||||||
|
|
||||||
@@ -653,7 +700,20 @@ A: 使用 `logger.debug()` 输出调试信息,查看应用日志。
|
|||||||
|
|
||||||
## 示例脚本
|
## 示例脚本
|
||||||
|
|
||||||
参考 `parser/src/main/resources/custom-parsers/example-demo.js` 文件,包含完整的示例实现。
|
参考以下示例文件,包含完整的解析器实现:
|
||||||
|
|
||||||
|
- **`parser/src/main/resources/custom-parsers/example-demo.js`** - 完整的演示解析器,展示所有功能
|
||||||
|
- **`parser/src/main/resources/custom-parsers/baidu-photo.js`** - 百度相册解析器示例
|
||||||
|
- **`parser/src/main/resources/custom-parsers/migu-music.js`** - 咪咕音乐解析器示例
|
||||||
|
- **`parser/src/main/resources/custom-parsers/qishui-music.js`** - 汽水音乐解析器示例
|
||||||
|
|
||||||
|
这些示例展示了:
|
||||||
|
- 元数据配置
|
||||||
|
- 三个核心方法的实现(parse、parseFileList、parseById)
|
||||||
|
- 错误处理和日志记录
|
||||||
|
- 文件信息构建
|
||||||
|
- 重定向处理
|
||||||
|
- 代理支持
|
||||||
|
|
||||||
## 限制说明
|
## 限制说明
|
||||||
|
|
||||||
@@ -662,6 +722,16 @@ A: 使用 `logger.debug()` 输出调试信息,查看应用日志。
|
|||||||
3. **内存限制**: 长时间运行可能存在内存泄漏风险
|
3. **内存限制**: 长时间运行可能存在内存泄漏风险
|
||||||
4. **安全限制**: 无法访问文件系统或执行系统命令
|
4. **安全限制**: 无法访问文件系统或执行系统命令
|
||||||
|
|
||||||
|
## 相关文档
|
||||||
|
|
||||||
|
- [自定义解析器扩展指南](CUSTOM_PARSER_GUIDE.md) - Java自定义解析器扩展
|
||||||
|
- [自定义解析器快速开始](CUSTOM_PARSER_QUICKSTART.md) - 快速上手指南
|
||||||
|
- [解析器开发文档](README.md) - 解析器开发约定和规范
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
- v1.0.0: 初始版本,支持基本的JavaScript解析器功能
|
- v1.0.0: 初始版本,支持基本的JavaScript解析器功能
|
||||||
|
- 支持外部解析器路径配置(系统属性、环境变量)
|
||||||
|
- 支持文件上传功能(sendMultipartForm)
|
||||||
|
- 支持重定向处理(getNoRedirect、getWithRedirect)
|
||||||
|
- 支持代理配置(HTTP/SOCKS4/SOCKS5)
|
||||||
|
|||||||
@@ -118,8 +118,9 @@ function parse(shareLinkInfo, http, logger) {
|
|||||||
|
|
||||||
### 3. 详细文档
|
### 3. 详细文档
|
||||||
|
|
||||||
- [JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md)
|
- **[JavaScript解析器开发指南](JAVASCRIPT_PARSER_GUIDE.md)** - 完整的JavaScript解析器开发文档,包含API参考、示例代码和最佳实践
|
||||||
- [自定义解析器开发指南](CUSTOM_PARSER_GUIDE.md)
|
- **[自定义解析器扩展指南](CUSTOM_PARSER_GUIDE.md)** - Java自定义解析器扩展完整指南
|
||||||
|
- **[自定义解析器快速开始](CUSTOM_PARSER_QUICKSTART.md)** - 快速上手自定义解析器开发
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,51 @@
|
|||||||
// 全局类型定义,使用JSDoc注释
|
// 全局类型定义,使用JSDoc注释
|
||||||
// 这些类型定义将在VSCode中提供代码补全和类型检查
|
// 这些类型定义将在VSCode中提供代码补全和类型检查
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Nashorn Java 互操作全局对象
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java 全局对象类型定义 (Nashorn引擎提供)
|
||||||
|
* 用于访问Java类型和进行Java互操作
|
||||||
|
* @typedef {Object} JavaGlobal
|
||||||
|
* @property {function(string): any} type - 获取Java类,参数为完整类名(如"java.util.zip.CRC32")
|
||||||
|
* @property {function(any): any} from - 将Java对象转换为JavaScript对象
|
||||||
|
* @property {function(any): any} to - 将JavaScript对象转换为Java对象
|
||||||
|
* @property {function(any): boolean} isType - 检查对象是否为指定Java类型
|
||||||
|
* @property {function(any): boolean} isJavaObject - 检查对象是否为Java对象
|
||||||
|
* @property {function(any): boolean} isJavaMethod - 检查对象是否为Java方法
|
||||||
|
* @property {function(any): boolean} isJavaFunction - 检查对象是否为Java函数
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java 全局对象 (Nashorn引擎提供)
|
||||||
|
* @global
|
||||||
|
* @type {JavaGlobal}
|
||||||
|
*/
|
||||||
|
var Java;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* java 命名空间对象类型定义 (Nashorn引擎提供)
|
||||||
|
* 用于直接访问Java包和类
|
||||||
|
* @typedef {Object} JavaNamespace
|
||||||
|
* @property {Object} lang - java.lang 包
|
||||||
|
* @property {Object} util - java.util 包
|
||||||
|
* @property {Object} io - java.io 包
|
||||||
|
* @property {Object} net - java.net 包
|
||||||
|
* @property {Object} math - java.math 包
|
||||||
|
* @property {Object} security - java.security 包
|
||||||
|
* @property {Object} text - java.text 包
|
||||||
|
* @property {Object} time - java.time 包
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* java 命名空间对象 (Nashorn引擎提供)
|
||||||
|
* @global
|
||||||
|
* @type {JavaNamespace}
|
||||||
|
*/
|
||||||
|
var java;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} ShareLinkInfo
|
* @typedef {Object} ShareLinkInfo
|
||||||
* @property {function(): string} getShareUrl - 获取分享URL
|
* @property {function(): string} getShareUrl - 获取分享URL
|
||||||
@@ -69,3 +114,157 @@
|
|||||||
* @property {function(ShareLinkInfo, JsHttpClient, JsLogger): FileInfo[]} parseFileList - 解析文件列表
|
* @property {function(ShareLinkInfo, JsHttpClient, JsLogger): FileInfo[]} parseFileList - 解析文件列表
|
||||||
* @property {function(ShareLinkInfo, JsHttpClient, JsLogger): string} parseById - 根据文件ID获取下载链接
|
* @property {function(ShareLinkInfo, JsHttpClient, JsLogger): string} parseById - 根据文件ID获取下载链接
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Java 基础类型定义
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java byte 类型 (8位有符号整数)
|
||||||
|
* 范围: -128 到 127
|
||||||
|
* @typedef {number} JavaByte
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java short 类型 (16位有符号整数)
|
||||||
|
* 范围: -32,768 到 32,767
|
||||||
|
* @typedef {number} JavaShort
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java int 类型 (32位有符号整数)
|
||||||
|
* 范围: -2,147,483,648 到 2,147,483,647
|
||||||
|
* @typedef {number} JavaInt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java long 类型 (64位有符号整数)
|
||||||
|
* 范围: -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
|
||||||
|
* @typedef {number} JavaLong
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java float 类型 (32位单精度浮点数)
|
||||||
|
* @typedef {number} JavaFloat
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java double 类型 (64位双精度浮点数)
|
||||||
|
* @typedef {number} JavaDouble
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java char 类型 (16位Unicode字符)
|
||||||
|
* @typedef {string|number} JavaChar
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java boolean 类型 (布尔值)
|
||||||
|
* @typedef {boolean} JavaBoolean
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java String 类型 (字符串)
|
||||||
|
* @typedef {string} JavaString
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Byte 包装类型
|
||||||
|
* @typedef {Object} JavaByteWrapper
|
||||||
|
* @property {function(): number} byteValue - 返回byte值
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(JavaByteWrapper): number} compareTo - 比较两个Byte对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Short 包装类型
|
||||||
|
* @typedef {Object} JavaShortWrapper
|
||||||
|
* @property {function(): number} shortValue - 返回short值
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(JavaShortWrapper): number} compareTo - 比较两个Short对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Integer 包装类型
|
||||||
|
* @typedef {Object} JavaIntegerWrapper
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(JavaIntegerWrapper): number} compareTo - 比较两个Integer对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(number): JavaIntegerWrapper} valueOf - 静态方法:创建Integer对象
|
||||||
|
* @property {function(string): number} parseInt - 静态方法:解析字符串为int
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Long 包装类型
|
||||||
|
* @typedef {Object} JavaLongWrapper
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(JavaLongWrapper): number} compareTo - 比较两个Long对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(number): JavaLongWrapper} valueOf - 静态方法:创建Long对象
|
||||||
|
* @property {function(string): number} parseLong - 静态方法:解析字符串为long
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Float 包装类型
|
||||||
|
* @typedef {Object} JavaFloatWrapper
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(JavaFloatWrapper): number} compareTo - 比较两个Float对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(number): JavaFloatWrapper} valueOf - 静态方法:创建Float对象
|
||||||
|
* @property {function(string): number} parseFloat - 静态方法:解析字符串为float
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Double 包装类型
|
||||||
|
* @typedef {Object} JavaDoubleWrapper
|
||||||
|
* @property {function(): number} doubleValue - 返回double值
|
||||||
|
* @property {function(): number} floatValue - 返回float值
|
||||||
|
* @property {function(): number} intValue - 返回int值
|
||||||
|
* @property {function(): number} longValue - 返回long值
|
||||||
|
* @property {function(JavaDoubleWrapper): number} compareTo - 比较两个Double对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(number): JavaDoubleWrapper} valueOf - 静态方法:创建Double对象
|
||||||
|
* @property {function(string): number} parseDouble - 静态方法:解析字符串为double
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Character 包装类型
|
||||||
|
* @typedef {Object} JavaCharacterWrapper
|
||||||
|
* @property {function(): string|number} charValue - 返回char值
|
||||||
|
* @property {function(JavaCharacterWrapper): number} compareTo - 比较两个Character对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(string|number): boolean} isDigit - 静态方法:判断是否为数字
|
||||||
|
* @property {function(string|number): boolean} isLetter - 静态方法:判断是否为字母
|
||||||
|
* @property {function(string|number): boolean} isLetterOrDigit - 静态方法:判断是否为字母或数字
|
||||||
|
* @property {function(string|number): boolean} isUpperCase - 静态方法:判断是否为大写
|
||||||
|
* @property {function(string|number): boolean} isLowerCase - 静态方法:判断是否为小写
|
||||||
|
* @property {function(string|number): string|number} toUpperCase - 静态方法:转换为大写
|
||||||
|
* @property {function(string|number): string|number} toLowerCase - 静态方法:转换为小写
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java Boolean 包装类型
|
||||||
|
* @typedef {Object} JavaBooleanWrapper
|
||||||
|
* @property {function(): boolean} booleanValue - 返回boolean值
|
||||||
|
* @property {function(JavaBooleanWrapper): number} compareTo - 比较两个Boolean对象
|
||||||
|
* @property {function(): string} toString - 转换为字符串
|
||||||
|
* @property {function(boolean): JavaBooleanWrapper} valueOf - 静态方法:创建Boolean对象
|
||||||
|
* @property {function(string): boolean} parseBoolean - 静态方法:解析字符串为boolean
|
||||||
|
*/
|
||||||
|
|||||||
@@ -82,5 +82,11 @@ public class AppMain {
|
|||||||
localMap.put("proxy", jsonObject1);
|
localMap.put("proxy", jsonObject1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 认证
|
||||||
|
if (jsonObject.containsKey(ConfigConstant.AUTHS)) {
|
||||||
|
JsonObject auths = jsonObject.getJsonObject(ConfigConstant.AUTHS);
|
||||||
|
localMap.put(ConfigConstant.AUTHS, auths);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,3 +96,9 @@ proxy:
|
|||||||
# username:
|
# username:
|
||||||
# password:
|
# password:
|
||||||
|
|
||||||
|
### 解析认证相关
|
||||||
|
auths:
|
||||||
|
# 123网盘:配置用户名密码
|
||||||
|
ye:
|
||||||
|
username:
|
||||||
|
password:
|
||||||
Reference in New Issue
Block a user