⚠️ 免责声明:本项目仅供学习和研究使用。 Navigraph的相关服务和数据可能受到版权限制,请用户在使用时遵守当地法律法规及服务条款。 本项目不鼓励或支持任何侵犯知识产权的行为。
ChartProvider 是一个基于 Go 语言开发的开源软件,用于学习请求代理的实现原理。
为了学习本项目,你需要一个订阅的 Navigraph 账号。
如果你还没有 Navigraph 账号,可以访问 Navigraph官网 了解更多信息。
-
(推荐) 使用docker-compose部署
i. 克隆或下载本项目到本地,并进入docker目录
ii. 按需编辑配置文件或docker-compose.yml文件
iii. 运行docker-compose up -d命令
iv. 访问http://127.0.0.1:8080查看是否部署成功
v. 如果需要添加命令行参数services: fsd: image: halfnothing/chart-provider:latest # 省略部分字段 command: - "-thread 32"
推荐使用环境变量代替命令行参数
services: fsd: image: halfnothing/chart-provider:latest # 省略部分字段 environment: QUERY_THREAD: 32
-
使用docker命令部署
命令示例如下docker run -d --name chart-provider -p 8080:8080 -p 8081:8081 -v $(pwd)/config.yaml:/chart-provider/config.yaml halfnothing/chart-provider:latest如果需要添加命令行参数, 则在命令的最后添加
docker run -d ... halfnothing/chart-provider:latest -thread 32
-
通过Dockerfile构建
i. 手动构建# 克隆本仓库 git clone https://github.com/Flyleague-Collection/chart-provider.git # 进入项目目录 cd chart-provider # 运行docker构建 docker build -t chart-provider:latest . # 运行docker容器 docker run -d --name chart-provider -p 8080:8080 -p 8081:8081 -v $(pwd)/config.yaml:/chart-provider/config.yaml chart-provider:latest
ii. 自动构建
# 克隆本仓库 git clone https://github.com/Flyleague-Collection/chart-provider.git # 进入项目目录 cd chart-provider # 进入docker目录并且修改docker-compose.yml文件 cd docker vi docker-compose.yml
将
image: halfnothing/chart-provider:latest这一行替换为build: ".."
然后在同目录运行docker compose up -d
- 获取项目可执行文件
- [可选]下载
config.yaml配置文件放置于可执行文件同级目录中 - 运行可执行文件,如果配置文件存在,则使用配置文件,否则创建默认配置文件
- 运行项目
- 查看项目日志
如果看到下面的日志,说明需要手动授权请访问日志中提供的链接,并手动授权2025-11-24T01:26:07 | MAIN | INFO | TokenManager | Device authorization, please visit https://identity.api.navigraph.com/code/default.aspx?user_code=XXXXXXX to manual authorization
- 授权成功后,会看到下面的日志
2025-11-24T01:26:17 | MAIN | INFO | TokenManager | Device authorization passed
一般来说只需要手动授权一次
后续运行项目时, 会使用刷新令牌自动获取授权
但如果长时间不使用接口, 刷新令牌可能会失效,此时需要重新手动授权
如果自动授权成功,则会看到下面的日志
2025-11-24T01:27:49 | MAIN | INFO | TokenManager | Use cached flush token如果自动授权失败,则会看到下面的日志
2025-11-24T01:47:28 | MAIN | ERROR | TokenManager | refreshAccessToken StatusCode: 400同时服务器也会自动重新申请手动授权
# 克隆本仓库
git clone https://github.com/Flyleague-Collection/chart-provider.git
# 进入项目目录
cd chart-provider
# 确认安装了go编译器并且版本>=1.24.6
go version
# 运行go build命令
go build -ldflags="-w -s" .
# 对于windows系统, 可执行文件为chart-provider.exe
# 对于linux系统, 可执行文件为chart-provider
# [可选]使用upx压缩可执行文件
# windows
upx.exe -9 chart-provider.exe
# linux
upx -9 chart-provider| 命令行参数 | 环境变量 | 描述 | 默认值 |
|---|---|---|---|
| no_logs | NO_LOGS | 禁用日志输出到文件 | false |
| config | CONFIG_FILE_PATH | 配置文件路径 | "config.yaml" |
| signing_method | SIGNING_METHOD | 签名方法 | "HS512" |
| request_timeout | REQUEST_TIMEOUT | 请求超时时间 | "30s" |
| gzip_level | GZIP_LEVEL | gzip压缩级别 | 5 |
- 开一个 Issue 与我们讨论
- Fork 本项目并完成你的修改
- 不要修改任何除了你创建以外的源代码的版权信息
- 遵守良好的代码编码规范
- 开一个 Pull Request
MIT License
Copyright © 2025 Half_nothing
无附加条款。
- 本软件仅供个人学习和研究目的使用,严禁用于任何商业用途。
- 通过本软件获取或生成的任何内容,使用者应确保其使用方式符合相关法律法规,不得用于商业目的。
- 使用者应尊重所有相关的知识产权,包括但不限于版权、商标权等,并严格遵守第三方服务的最终用户许可协议(EULA)及服务条款。
- 本项目的开发者明确声明,提供此软件不构成对任何第三方软件许可限制、EULA 或其他合同条款的豁免或绕过授权。
- 任何因滥用本软件、非法使用本软件或其衍生作品而导致的法律责任和后果均由使用者自行承担,本软件的作者及维护者对此不承担任何责任。
- 本软件不对数据的准确性、完整性或适用性做出任何明示或暗示的保证,使用者应自行承担使用风险。
- 使用者理解并同意,使用本软件即表示接受本免责声明的所有条款和条件,如有异议请立即停止使用本软件。