|
1 | 1 | import { v4 as uuidv4 } from "uuid"; |
2 | | -import { fetchScriptInfo, prepareScriptByCode } from "@App/pkg/utils/script"; |
| 2 | +import { fetchScriptBody, fetchScriptInfo, parseMetadata, prepareScriptByCode } from "@App/pkg/utils/script"; |
3 | 3 | import Cache from "@App/app/cache"; |
4 | 4 | import CacheKey from "@App/pkg/utils/cache_key"; |
5 | 5 | import { MessageHander } from "@App/app/message/message"; |
@@ -132,48 +132,43 @@ export class ScriptManager extends Manager { |
132 | 132 | // 检查更新 |
133 | 133 | const script = await this.scriptDAO.findById(id); |
134 | 134 | if (!script) { |
135 | | - return Promise.resolve(false); |
| 135 | + return false; |
136 | 136 | } |
137 | 137 | this.scriptDAO.update(id, { checktime: new Date().getTime() }); |
138 | 138 | if (!script.checkUpdateUrl) { |
139 | | - return Promise.resolve(false); |
| 139 | + return false; |
140 | 140 | } |
141 | 141 | const logger = LoggerCore.getLogger({ |
142 | 142 | scriptId: id, |
143 | 143 | name: script.name, |
144 | 144 | }); |
145 | 145 | try { |
146 | | - const info = await fetchScriptInfo( |
147 | | - script.checkUpdateUrl, |
148 | | - source, |
149 | | - false, |
150 | | - script.uuid |
151 | | - ); |
152 | | - const { metadata } = info; |
| 146 | + const code = await fetchScriptBody(script.checkUpdateUrl); |
| 147 | + const metadata = parseMetadata(code); |
153 | 148 | if (!metadata) { |
154 | 149 | logger.error("parse metadata failed"); |
155 | | - return Promise.resolve(false); |
| 150 | + return false; |
156 | 151 | } |
157 | 152 | const newVersion = metadata.version && metadata.version[0]; |
158 | 153 | if (!newVersion) { |
159 | | - logger.error("parse version failed", { version: metadata.version[0] }); |
160 | | - return Promise.resolve(false); |
| 154 | + logger.error("parse version failed", { version: metadata.version }); |
| 155 | + return false; |
161 | 156 | } |
162 | 157 | let oldVersion = script.metadata.version && script.metadata.version[0]; |
163 | 158 | if (!oldVersion) { |
164 | 159 | oldVersion = "0.0.0"; |
165 | 160 | } |
166 | 161 | // 对比版本大小 |
167 | 162 | if (ltever(newVersion, oldVersion, logger)) { |
168 | | - return Promise.resolve(false); |
| 163 | + return false; |
169 | 164 | } |
170 | 165 | // 进行更新 |
171 | 166 | this.openUpdatePage(script, source); |
172 | 167 | } catch (e) { |
173 | 168 | logger.error("check update failed", Logger.E(e)); |
174 | | - return Promise.resolve(false); |
| 169 | + return false; |
175 | 170 | } |
176 | | - return Promise.resolve(true); |
| 171 | + return true; |
177 | 172 | } |
178 | 173 |
|
179 | 174 | // 打开更新窗口 |
@@ -229,11 +224,12 @@ export class ScriptManager extends Manager { |
229 | 224 | source: InstallSource, |
230 | 225 | subscribeUrl?: string |
231 | 226 | ) { |
232 | | - const info = await fetchScriptInfo(url, source, false, uuidv4()); |
233 | | - const prepareScript = await prepareScriptByCode(info.code, url, info.uuid); |
234 | | - prepareScript.script.subscribeUrl = subscribeUrl; |
235 | | - await this.event.upsertHandler(prepareScript.script, source); |
236 | | - return Promise.resolve(prepareScript.script); |
| 227 | + const uuid = uuidv4(); |
| 228 | + const code = await fetchScriptBody(url); |
| 229 | + const { script } = await prepareScriptByCode(code, url, uuid); |
| 230 | + script.subscribeUrl = subscribeUrl; |
| 231 | + await this.event.upsertHandler(script, source); |
| 232 | + return Promise.resolve(script); |
237 | 233 | } |
238 | 234 | } |
239 | 235 |
|
|
0 commit comments