hunter-open-sdk 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -36,7 +36,17 @@ var Service = /*#__PURE__*/function () {
|
|
|
36
36
|
mainWindow.webContents.send("checkDriver", true);
|
|
37
37
|
} else {
|
|
38
38
|
mainWindow.webContents.send("checkDriver", false);
|
|
39
|
-
|
|
39
|
+
// 修复:传入正确的进度回调函数
|
|
40
|
+
(0, _winDriver.downloadDriver)(function (percent) {
|
|
41
|
+
console.log('下载进度:', percent + '%');
|
|
42
|
+
mainWindow.webContents.send("downloadProgress", percent);
|
|
43
|
+
}).then(function () {
|
|
44
|
+
console.log('驱动下载安装成功');
|
|
45
|
+
mainWindow.webContents.send("checkDriver", true);
|
|
46
|
+
}).catch(function (err) {
|
|
47
|
+
console.error('驱动下载安装失败:', err);
|
|
48
|
+
mainWindow.webContents.send("checkDriver", false);
|
|
49
|
+
});
|
|
40
50
|
}
|
|
41
51
|
});
|
|
42
52
|
}
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.checkHasDriver = checkHasDriver;
|
|
8
8
|
exports.downloadDriver = downloadDriver;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
12
|
var _utils = require("../../utils/utils");
|
|
12
13
|
var _utils2 = require("../../utils/utils.command");
|
|
@@ -109,6 +110,12 @@ var installDriver = function installDriver() {
|
|
|
109
110
|
var AppleMobileDeviceSupport64 = path.join(CACHE_PATH, './AppleMobileDeviceSupport64.msi');
|
|
110
111
|
var Bonjour64 = path.join(CACHE_PATH, './Bonjour64.msi');
|
|
111
112
|
var cmdStr = "start /i /wait ".concat(AppleApplicationSupport, " /qn && start /i /wait ").concat(AppleApplicationSupport64, " /qn && start /i /wait ").concat(AppleMobileDeviceSupport64, " /qn && start /i /wait ").concat(Bonjour64, " /qn");
|
|
113
|
+
console.log('开始安装驱动,命令:', cmdStr);
|
|
114
|
+
console.log('检查安装文件是否存在:');
|
|
115
|
+
console.log('AppleApplicationSupport:', fs.existsSync(AppleApplicationSupport));
|
|
116
|
+
console.log('AppleApplicationSupport64:', fs.existsSync(AppleApplicationSupport64));
|
|
117
|
+
console.log('AppleMobileDeviceSupport64:', fs.existsSync(AppleMobileDeviceSupport64));
|
|
118
|
+
console.log('Bonjour64:', fs.existsSync(Bonjour64));
|
|
112
119
|
return new Promise(function (resolve, reject) {
|
|
113
120
|
sudo.exec(cmdStr, options, function (error, stdout, stderr) {
|
|
114
121
|
console.log('安装 error>>', error);
|
|
@@ -121,8 +128,10 @@ var installDriver = function installDriver() {
|
|
|
121
128
|
}
|
|
122
129
|
checkProcessTimer();
|
|
123
130
|
if (error) {
|
|
131
|
+
console.error('驱动安装失败:', error);
|
|
124
132
|
reject(error); // 安装失败
|
|
125
133
|
} else {
|
|
134
|
+
console.log('驱动安装成功');
|
|
126
135
|
resolve(); // 安装成功
|
|
127
136
|
}
|
|
128
137
|
});
|
|
@@ -131,68 +140,119 @@ var installDriver = function installDriver() {
|
|
|
131
140
|
// 解压文件
|
|
132
141
|
var uncopressingFile = function uncopressingFile(filePath) {
|
|
133
142
|
return new Promise(function (resolve) {
|
|
143
|
+
console.log('开始解压文件:', filePath);
|
|
134
144
|
compressing.zip.uncompress(filePath, CACHE_PATH).then(function () {
|
|
145
|
+
console.log('文件解压成功');
|
|
135
146
|
resolve(true);
|
|
136
147
|
}).catch(function (err) {
|
|
148
|
+
console.error('文件解压失败:', err);
|
|
137
149
|
resolve(false);
|
|
138
|
-
console.log('error', err);
|
|
139
150
|
});
|
|
140
151
|
});
|
|
141
152
|
};
|
|
142
153
|
|
|
143
154
|
// Promise 版本的 downloadDriver,onProgress 作为参数,成功 resolve,失败 reject
|
|
144
155
|
function downloadDriver(onProgress) {
|
|
156
|
+
console.log('=== downloadDriver 函数被调用 ===');
|
|
157
|
+
console.log('onProgress 参数:', (0, _typeof2.default)(onProgress));
|
|
145
158
|
return new Promise(function (resolve, reject) {
|
|
159
|
+
console.log('=== 开始创建Promise ===');
|
|
146
160
|
var url = 'http://ljtools.zhuanstatic.com/download/iTunesDriver/iTunesOL_Lite_64_12.10.0.7.zip';
|
|
147
161
|
var dest = filePath;
|
|
162
|
+
console.log('开始下载驱动文件:', url);
|
|
163
|
+
console.log('目标路径:', dest);
|
|
164
|
+
|
|
165
|
+
// 检查目标目录是否存在
|
|
166
|
+
var destDir = path.dirname(dest);
|
|
167
|
+
console.log('目标目录:', destDir);
|
|
168
|
+
console.log('目录是否存在:', fs.existsSync(destDir));
|
|
148
169
|
var fileStream = _fsExtra.default.createWriteStream(dest);
|
|
149
170
|
var received = 0;
|
|
150
171
|
var total = 0;
|
|
172
|
+
|
|
173
|
+
// 进度回调限流:每100ms最多调用一次,或者进度变化超过5%时调用
|
|
174
|
+
var lastProgressCall = 0;
|
|
175
|
+
var lastProgressPercent = 0;
|
|
176
|
+
var PROGRESS_THROTTLE_MS = 100; // 100ms限流
|
|
177
|
+
var PROGRESS_THRESHOLD = 5; // 5%阈值
|
|
178
|
+
|
|
179
|
+
var throttledProgressCallback = function throttledProgressCallback(percent) {
|
|
180
|
+
var now = Date.now();
|
|
181
|
+
var shouldCall = now - lastProgressCall >= PROGRESS_THROTTLE_MS || Math.abs(percent - lastProgressPercent) >= PROGRESS_THRESHOLD;
|
|
182
|
+
if (shouldCall && onProgress) {
|
|
183
|
+
onProgress(percent);
|
|
184
|
+
lastProgressCall = now;
|
|
185
|
+
lastProgressPercent = percent;
|
|
186
|
+
console.log("\u4E0B\u8F7D\u8FDB\u5EA6: ".concat(percent, "% (").concat(received, "/").concat(total, ")"));
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
console.log('=== 开始创建request ===');
|
|
151
190
|
(0, _request.default)(url).on('response', function (response) {
|
|
191
|
+
console.log('下载响应状态:', response.statusCode);
|
|
152
192
|
if (response.statusCode !== 200) {
|
|
153
193
|
reject(new Error("\u4E0B\u8F7D\u5931\u8D25: ".concat(response.statusMessage)));
|
|
154
194
|
return;
|
|
155
195
|
}
|
|
156
196
|
total = parseInt(response.headers['content-length'], 10);
|
|
197
|
+
console.log('文件总大小:', total, 'bytes');
|
|
157
198
|
}).on('data', function (chunk) {
|
|
158
199
|
received += chunk.length;
|
|
159
|
-
if (
|
|
160
|
-
|
|
200
|
+
if (total) {
|
|
201
|
+
var percent = Math.round(received / total * 100);
|
|
202
|
+
throttledProgressCallback(percent);
|
|
161
203
|
}
|
|
162
204
|
}).on('error', function (err) {
|
|
163
205
|
console.error('驱动下载失败', err);
|
|
206
|
+
fileStream.end(); // 确保关闭文件流
|
|
164
207
|
reject(err);
|
|
165
208
|
}).pipe(fileStream).on('finish', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
166
209
|
var uncopressing;
|
|
167
210
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
168
211
|
while (1) switch (_context2.prev = _context2.next) {
|
|
169
212
|
case 0:
|
|
170
|
-
|
|
171
|
-
|
|
213
|
+
console.log('=== FINISH 事件被触发 ===');
|
|
214
|
+
console.log('文件下载完成,开始解压...');
|
|
215
|
+
|
|
216
|
+
// 确保最后一次进度回调被调用(100%)
|
|
217
|
+
if (onProgress && total) {
|
|
218
|
+
onProgress(100);
|
|
219
|
+
console.log('下载完成: 100%');
|
|
220
|
+
}
|
|
221
|
+
_context2.prev = 3;
|
|
222
|
+
_context2.next = 6;
|
|
172
223
|
return uncopressingFile(filePath);
|
|
173
|
-
case
|
|
224
|
+
case 6:
|
|
174
225
|
uncopressing = _context2.sent;
|
|
226
|
+
console.log('解压结果:', uncopressing);
|
|
175
227
|
if (uncopressing) {
|
|
228
|
+
console.log('开始安装驱动...');
|
|
176
229
|
installDriver().then(function () {
|
|
230
|
+
console.log('驱动安装成功');
|
|
177
231
|
resolve();
|
|
178
232
|
}).catch(function (err) {
|
|
233
|
+
console.error('驱动安装失败:', err);
|
|
179
234
|
reject(err);
|
|
180
235
|
});
|
|
181
236
|
} else {
|
|
237
|
+
console.error('解压失败');
|
|
182
238
|
reject(new Error('解压失败'));
|
|
183
239
|
}
|
|
184
|
-
_context2.next =
|
|
240
|
+
_context2.next = 15;
|
|
185
241
|
break;
|
|
186
|
-
case
|
|
187
|
-
_context2.prev =
|
|
188
|
-
_context2.t0 = _context2["catch"](
|
|
242
|
+
case 11:
|
|
243
|
+
_context2.prev = 11;
|
|
244
|
+
_context2.t0 = _context2["catch"](3);
|
|
245
|
+
console.error('解压或安装过程中出错:', _context2.t0);
|
|
189
246
|
reject(_context2.t0);
|
|
190
|
-
case
|
|
247
|
+
case 15:
|
|
191
248
|
case "end":
|
|
192
249
|
return _context2.stop();
|
|
193
250
|
}
|
|
194
|
-
}, _callee2, null, [[
|
|
195
|
-
})))
|
|
251
|
+
}, _callee2, null, [[3, 11]]);
|
|
252
|
+
}))).on('error', function (err) {
|
|
253
|
+
console.error('文件流写入错误:', err);
|
|
254
|
+
reject(err);
|
|
255
|
+
});
|
|
196
256
|
});
|
|
197
257
|
}
|
|
198
258
|
function checkHasDriver() {
|