# auto-update-channel **Repository Path**: Capsion-ST-PLugins/auto-update-channel ## Basic Information - **Project Name**: auto-update-channel - **Description**: sublimeText每次打开插件市场都要重新下载channel_v3.json文件,这是一个可以自动更新channel_v3.json,同时自动关联到配置的插件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-24 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: sublimeText, sublimetext-plugin, cps, Channel, package-control ## README ## 简介|Introductions
SublimeText 每次打开插件市场都要重新下载 `channel_v3.json` 文件,由于国内网络原因,有些时候无法正确下载,或者速度太慢被ST判断为下载超时无法使用。本插件可以定期自动或者手动触发更新 `channel_v3.json` 和 `channel_v4.json` 文件,并将其下载到本地进行离线关联,从此秒开 `Ctrl + Shfit + P`。 > - 本插件为团队内部打造使用,不对外更新负责, > - 2023年了,前端建议采用**VSCode**。 ## 功能|Feature ![1](/screenshot/sublimeTextPlugs/cps-auto-update-channel/cps-auto-update-channel.gif) ![cps-auto-update-channel](http://localhost:45462/image/cps-auto-update-channel.gif) - 快捷键:`alt+u`,此时后台会自动下载最新的 `channel_v4.json` 和 `channel_v3.json`,具体进度会在最下方的 `statusBar` 显示。 - 自动更新文件路径到 `Package Control.sublime-settings` 的 `"channels"` 字段中,优先使用 `channel_v4.json` - 支持代理和无代理下载模式,提高下载成功率 - 添加缓存层,先下载到缓存目录,再复制到用户目录,提高下载可靠性 - 详细的状态提示和日志输出,便于了解当前操作状态 ## 安装|Install ```bash # 打开 SublimeText3的插件目录,并在该目录下打开shell 菜单栏 > Preferences > Browse Packages... # 在插件目录运行shell,下载插件 # gitee git clone --depth=1 git@gitee.com:Capsion-ST-PLugins/auto-update-channel.git auto-update-channel # or github git clone --depth=1 git@github.com:Capsion-ST-PLugins/auto-update-channel.git auto-update-channel # 打开控制台查看更新进度 Ctrl + ` # 重启ST 通过快捷键调用(前提要打开一个有效文件) Ctrl + u ``` ## 从此告别 ![2](/screenshot/sublimeTextPlugs/cps-auto-update-channel/auto-update-channel2.png)![auto-update-channel2](http://localhost:45462/image/auto-update-channel2.png) 全世界都知道 sublimetext 国内访问插件市场时,有一些地区基本时连不上的,因为 sublimetext 每次搜索插件,安装插件前都会访问一次 `https://packagecontrol.io/channel_v3.json`,下载 `channel_v3.json` 文件。 由于 packagecontrol.io 是国外服务器,访问很慢,有些同事下载只有几 kb 每秒。而且 `channel_v3.json` 由于存储了所有插件对应的项目地址,文件自身越来越大(截至 2022 年 1 月该文件为 3.7mb),特意写一个后台下载该文件的插件,下载完成后文件会保存在 User 文件夹中。 同时插件可以设置更新周期,一般默认 7 天更新一次。 ## **配置文件|Configure** ### 快捷键 - `alt +u`:手动触发更新 `channel_v4.json` 和 `channel_v3.json` 文件 ```js [ { "keys": ["alt+u"], "command": "cps_update_channel" } ] ``` ### 插件配置 - `Packages/User/cps.sublime-settings` ```js { "auto_update_channel":{ "enable":true, // 插件开关 "auto_update": true, // 是否自动更新 "update_interval": 7, // 多少天更新一次 } } ``` ## 项目架构|Tree ```ini auto-update-channel/ # 插件根目录 ├── .sublime/ # Sublime Text 配置文件 │ ├── Default.sublime-keymap # 快捷键配置 │ ├── CpsUpdateChannel.sublime-commands # 命令配置 │ └── Context.sublime-menu # 上下文菜单配置 ├── cache/ # 缓存目录 ├── commands/ # 命令处理 │ └── update_channel.py # 更新channel命令 ├── core/ # 核心功能模块 │ ├── config.py # 配置管理(Sublime Text 环境适配) │ ├── core.py # 核心功能(不依赖 Sublime Text 环境) │ ├── downloader.py # 下载管理 │ ├── settings.py # 配置文件加载 │ ├── updater.py # 更新管理(Sublime Text 环境适配) │ └── utils.py # 工具函数 ├── screenshot/ # 截图目录 ├── .gitignore # Git忽略文件 ├── config.json # 配置文件 ├── README.md # 项目说明 ├── TODO.md # 任务列表 └── main.py # 插件入口 ``` ## 核心功能|Core Features 1. **Channel 文件管理** - 支持下载和更新 `channel_v4.json`(优先使用)和 `channel_v3.json` - 采用缓存机制,提高下载可靠性 - 自动检查文件更新状态,根据配置的更新间隔进行更新 2. **Package Control 配置管理** - 自动更新 `Package Control.sublime-settings` 中的 `channels` 配置 - 确保 `channel_v4.json` 在列表最前面,优先使用 3. **下载功能** - 支持代理和无代理下载模式 - 提供详细的下载进度报告 - 自动切换下载模式,提高下载成功率 4. **错误处理** - 完善的异常捕获和处理 - 详细的错误信息输出 5. **状态提示** - 控制台详细日志输出 - 状态栏简洁状态提示 ## 测试|Testing 本项目包含了完整的测试用例,确保核心功能的正确性: 1. **配置文件加载测试**:测试配置文件的加载和解析 2. **下载功能测试**:测试 URL 检查和文件下载 3. **核心功能测试**:测试路径初始化、缓存管理和配置更新 测试命令: ```bash # 运行配置文件加载测试 python core/settings.py # 运行下载功能测试 python core/downloader.py # 运行核心功能测试 python core/core.py # 检查代码语法 python -m py_compile main.py core/*.py commands/*.py ``` ## 技术栈|Tech Stack - **Python 3.8+**:核心语言 - **Sublime Text Plugin API**:插件环境 - **urllib**:文件下载 - **JSON**:配置管理 - **Type Hints**:类型注解,提高代码可读性 ## 联系方式|Contact - **373704015 (qq、wechat、email)**