@@ -17,6 +17,9 @@ export type ScriptEvent =
17
17
| "disable"
18
18
| "delete"
19
19
| "exclude"
20
+ | "resetExclude"
21
+ | "resetMatch"
22
+ | "updateCheckUpdateUrl"
20
23
| "checkUpdate"
21
24
| "importByUrl" ;
22
25
@@ -196,7 +199,8 @@ export default class ScriptEventListener {
196
199
return reject ( new Error ( "脚本不存在" ) ) ;
197
200
}
198
201
script . selfMetadata = script . selfMetadata || { } ;
199
- const excludes = script . selfMetadata . exclude || [ ] ;
202
+ const excludes =
203
+ script . selfMetadata . exclude || script . metadata . exclude || [ ] ;
200
204
if ( remove ) {
201
205
for ( let i = 0 ; i < excludes . length ; i += 1 ) {
202
206
if ( excludes [ i ] === exclude ) {
@@ -226,4 +230,119 @@ export default class ScriptEventListener {
226
230
} ) ;
227
231
} ) ;
228
232
}
233
+
234
+ @ListenEventDecorator ( "resetExclude" )
235
+ public resetExcludeHandler ( {
236
+ id,
237
+ exclude,
238
+ } : {
239
+ id : number ;
240
+ exclude : string [ ] | undefined ;
241
+ } ) {
242
+ const logger = this . logger . with ( { scriptId : id } ) ;
243
+ return new Promise ( ( resolve , reject ) => {
244
+ this . dao
245
+ . findById ( id )
246
+ . then ( ( script ) => {
247
+ if ( ! script ) {
248
+ return reject ( new Error ( "脚本不存在" ) ) ;
249
+ }
250
+ script . selfMetadata = script . selfMetadata || { } ;
251
+ if ( exclude ) {
252
+ script . selfMetadata . exclude = exclude ;
253
+ } else {
254
+ delete script . selfMetadata . exclude ;
255
+ }
256
+ this . dao . save ( script ) . then (
257
+ ( ) => {
258
+ logger . info ( "script resetExclude success" ) ;
259
+ ScriptManager . hook . trigger ( "upsert" , script , "system" ) ;
260
+ resolve ( { id : script . id } ) ;
261
+ } ,
262
+ ( e ) => {
263
+ logger . error ( "script resetExclude failed" , Logger . E ( e ) ) ;
264
+ reject ( e ) ;
265
+ }
266
+ ) ;
267
+ return resolve ( 1 ) ;
268
+ } )
269
+ . catch ( ( e ) => {
270
+ logger . error ( "resetMatch error" , Logger . E ( e ) ) ;
271
+ reject ( e ) ;
272
+ } ) ;
273
+ } ) ;
274
+ }
275
+
276
+ @ListenEventDecorator ( "resetMatch" )
277
+ public resetMatchHandler ( {
278
+ id,
279
+ match,
280
+ } : {
281
+ id : number ;
282
+ match : string [ ] | undefined ;
283
+ } ) {
284
+ const logger = this . logger . with ( { scriptId : id } ) ;
285
+ return new Promise ( ( resolve , reject ) => {
286
+ this . dao
287
+ . findById ( id )
288
+ . then ( ( script ) => {
289
+ if ( ! script ) {
290
+ return reject ( new Error ( "脚本不存在" ) ) ;
291
+ }
292
+ script . selfMetadata = script . selfMetadata || { } ;
293
+ if ( match ) {
294
+ script . selfMetadata . match = match ;
295
+ } else {
296
+ delete script . selfMetadata . match ;
297
+ }
298
+ this . dao . save ( script ) . then (
299
+ ( ) => {
300
+ logger . info ( "script resetMatch success" ) ;
301
+ ScriptManager . hook . trigger ( "upsert" , script , "system" ) ;
302
+ resolve ( { id : script . id } ) ;
303
+ } ,
304
+ ( e ) => {
305
+ logger . error ( "script resetMatch failed" , Logger . E ( e ) ) ;
306
+ reject ( e ) ;
307
+ }
308
+ ) ;
309
+ return resolve ( 1 ) ;
310
+ } )
311
+ . catch ( ( e ) => {
312
+ logger . error ( "resetMatch error" , Logger . E ( e ) ) ;
313
+ reject ( e ) ;
314
+ } ) ;
315
+ } ) ;
316
+ }
317
+
318
+ @ListenEventDecorator ( "updateCheckUpdateUrl" )
319
+ public updateCheckUpdateUrlHandler ( { id, url } : { id : number ; url : string } ) {
320
+ const logger = this . logger . with ( { scriptId : id } ) ;
321
+ return new Promise ( ( resolve , reject ) => {
322
+ this . dao
323
+ . findById ( id )
324
+ . then ( ( script ) => {
325
+ if ( ! script ) {
326
+ return reject ( new Error ( "脚本不存在" ) ) ;
327
+ }
328
+ script . checkUpdateUrl = url ;
329
+ script . downloadUrl = url ;
330
+ this . dao . save ( script ) . then (
331
+ ( ) => {
332
+ logger . info ( "script updateCheckUpdateUrl success" ) ;
333
+ resolve ( { id : script . id } ) ;
334
+ } ,
335
+ ( e ) => {
336
+ logger . error ( "script updateCheckUpdateUrl failed" , Logger . E ( e ) ) ;
337
+ reject ( e ) ;
338
+ }
339
+ ) ;
340
+ return resolve ( 1 ) ;
341
+ } )
342
+ . catch ( ( e ) => {
343
+ logger . error ( "updateCheckUpdateUrl error" , Logger . E ( e ) ) ;
344
+ reject ( e ) ;
345
+ } ) ;
346
+ } ) ;
347
+ }
229
348
}
0 commit comments