Skip to content

Commit a8da052

Browse files
committed
Refactor extension synchronization tool by removing legacy files and consolidating functionality into a unified app.js. Update README and package.json to reflect new structure and usage instructions.
1 parent f241ffe commit a8da052

File tree

7 files changed

+278
-193
lines changed

7 files changed

+278
-193
lines changed

40code-mirror.js

Lines changed: 0 additions & 98 deletions
This file was deleted.

README.md

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,119 @@
1-
# Extension Mirror Tool
1+
# ExtensionMirror - 扩展镜像同步工具
22

3-
这是一个用于同步扩展项目的命令行工具,可以从 abc.520gxx.com 获取扩展列表并同步到目标平台。
3+
一个用于同步和管理扩展的工具,支持40code和SharkPools两种模式。
4+
5+
## 项目结构
6+
7+
```
8+
ExtensionMirror/
9+
├── app.js # 统一入口文件
10+
├── modules/ # 模块目录
11+
│ ├── 40code/ # 40code相关模块
12+
│ │ └── 40codeMirror.js # 40code镜像处理器
13+
│ └── sharkpools/ # SharkPools相关模块
14+
│ └── sharkPoolsProcessor.js # SharkPools扩展处理器
15+
├── components/ # 共享组件
16+
│ ├── extensionFetcher.js # 扩展获取器
17+
│ ├── extensionSyncService.js # 扩展同步服务
18+
│ └── zerocatApi.js # ZeroCat API客户端
19+
├── SharkPools-Extensions/ # SharkPools扩展库
20+
└── env.example # 环境变量示例
21+
```
422

523
## 功能特性
624

7-
-https://api.abc.520gxx.com/work/ext 获取扩展列表
8-
- 支持通过扩展ID列表指定要同步的扩展
9-
- 支持通过作者列表自动获取该作者的所有扩展
10-
- 检查目标扩展是否已存在
11-
- 自动创建新项目(如果不存在)
12-
- 同步扩展代码并创建提交
13-
- 智能比较代码内容,避免重复提交
14-
- 支持批量处理多个扩展
25+
### 40code模式
26+
- 同步指定扩展和作者的扩展
27+
- 支持强制模式跳过差异比较
28+
- 自动获取作者的所有扩展
1529

16-
## 安装
30+
### SharkPools模式
31+
- 处理SharkPools扩展库
32+
- 自动解析扩展头信息
33+
- 支持SVG转PNG缩略图
34+
- 文件变化监听
1735

18-
1. 进入 ExtensionMirror 目录:
19-
```bash
20-
cd ExtensionMirror
21-
```
36+
## 安装和配置
2237

23-
2. 安装依赖:
38+
1. 安装依赖:
2439
```bash
2540
npm install
2641
```
2742

28-
## 配置
29-
30-
1. 复制环境变量示例文件:
43+
2. 复制环境变量文件:
3144
```bash
3245
cp env.example .env
3346
```
3447

35-
2. 编辑 `.env` 文件,设置你的配置
48+
3. 配置环境变量
3649
```env
37-
ZEROCAT_TOKEN_40CODE=your_api_ZEROCAT_TOKEN_40CODE_here
38-
ZEROCAT_BACKEND=https://your-api-host.com
50+
ZEROCAT_BACKEND=your_backend_url
51+
ZEROCAT_TOKEN_40CODE=your_40code_token
52+
ZEROCAT_TOKEN_SHARKPOOL=your_sharkpool_token
3953
```
4054

4155
## 使用方法
4256

43-
### 基本使用
44-
运行同步程序:
57+
### 40code模式
4558
```bash
46-
npm start
47-
```
59+
# 正常模式(比较文件差异)
60+
node app.js
4861

49-
或者直接运行:
50-
```bash
51-
node mirror.js
62+
# 强制模式(跳过差异比较)
63+
node app.js --force
5264
```
5365

54-
### 强制模式
55-
跳过差异比较,强制更新所有扩展:
66+
### SharkPools模式
5667
```bash
57-
node mirror.js -force
58-
```
68+
# 处理SharkPools扩展
69+
node app.js --sharkpools
5970

60-
或者:
61-
```bash
62-
node mirror.js --force
71+
# 强制模式处理SharkPools扩展
72+
node app.js --sharkpools --force
6373
```
6474

6575
## 配置说明
6676

67-
### 目标扩展配置
68-
69-
程序支持两种方式指定要同步的扩展:
70-
71-
1. **通过扩展ID列表** (`targetExtensions`): 直接指定要同步的扩展ID
72-
2. **通过作者列表** (`targetAuthors`): 自动获取指定作者的所有扩展
73-
74-
`mirror.js` 文件中配置:
77+
### 40code配置
78+
`modules/40code/40codeMirror.js` 中修改配置:
7579

7680
```javascript
77-
const config = {
78-
// ... 其他配置
81+
this.config = {
7982
targetExtensions: [
80-
'bitwiseoper',
81-
'strmani',
82-
// ... 更多扩展ID
83+
// 在这里添加目标扩展ID
8384
],
8485
targetAuthors: [
85-
'40code', // 获取 40code 作者的所有扩展
86-
'wuyuan', // 获取 wuyuan 作者的所有扩展
87-
// ... 更多作者
86+
"0832",
87+
"NOname",
88+
"40code",
89+
// 在这里添加目标作者列表
8890
]
8991
};
9092
```
91-
=
92-
93-
## 工作流程
94-
95-
1. **获取扩展列表**: 从 abc.520gxx.com 的API获取所有可用扩展
96-
2. **过滤目标扩展**:
97-
- 处理 `targetExtensions` 列表中指定的扩展ID
98-
- 处理 `targetAuthors` 列表中指定作者的所有扩展
99-
- 自动去重,避免重复处理同一扩展
100-
3. **检查项目存在性**: 检查 `40code/扩展名` 是否已存在
101-
4. **创建项目**: 如果不存在,创建新项目(类型为text)
102-
5. **初始化项目**: 调用 `/project/initlize` 接口初始化项目
103-
6. **获取代码**: 从 abc.520gxx.com/ext/扩展名.js 获取最新代码
104-
7. **保存文件**: 调用 `/project/savefile` 接口保存文件,获取 accessFileToken
105-
8. **创建提交**: 使用 accessFileToken 创建新提交
106-
107-
## 日志输出
108-
109-
程序会输出详细的日志信息:
110-
- ℹ️ 信息日志
111-
- ✅ 成功日志
112-
- ❌ 错误日志
113-
114-
## 注意事项
115-
116-
- 确保你有足够的API权限来创建项目和提交
117-
- 程序会在请求之间添加1秒延迟,避免请求过快
118-
- 如果扩展代码获取失败,会跳过该扩展并继续处理其他扩展
119-
- 用户名固定为 "40code",项目名使用扩展的 extId
93+
94+
### SharkPools配置
95+
SharkPools扩展需要放在 `SharkPools-Extensions/extension-code/` 目录下,并包含以下头信息:
96+
97+
```javascript
98+
// Name: 扩展名称
99+
// ID: 扩展ID
100+
// Description: 扩展描述
101+
// By: 作者名称
102+
```
103+
104+
## 开发说明
105+
106+
### 模块化设计
107+
- `app.js`: 统一入口,处理命令行参数和模式选择
108+
- `modules/40code/`: 40code相关功能模块
109+
- `modules/sharkpools/`: SharkPools相关功能模块
110+
- `components/`: 共享组件,可被多个模块复用
111+
112+
### 扩展新功能
113+
1.`modules/` 下创建新的模块目录
114+
2. 实现模块的主要功能类
115+
3.`app.js` 中添加新的模式支持
116+
117+
## 许可证
118+
119+
MIT License

0 commit comments

Comments
 (0)