@@ -2,7 +2,7 @@ import { type MessageQueue } from "@Packages/message/message_queue";
22import { type Group } from "@Packages/message/server" ;
33import type { ExtMessageSender } from "@Packages/message/types" ;
44import { type RuntimeService } from "./runtime" ;
5- import type { ScriptMatchInfo , ScriptMenu } from "./types" ;
5+ import type { TScriptMatchInfoEntry , ScriptMenu } from "./types" ;
66import type { GetPopupDataReq , GetPopupDataRes } from "./client" ;
77import { cacheInstance } from "@App/app/cache" ;
88import type { Script , ScriptDAO } from "@App/app/repo/scripts" ;
@@ -161,14 +161,14 @@ export class PopupService {
161161 runNum : script . type === SCRIPT_TYPE_NORMAL ? 0 : script . runStatus === SCRIPT_RUN_STATUS_RUNNING ? 1 : 0 ,
162162 runNumByIframe : 0 ,
163163 menus : [ ] ,
164- customUrlPatterns : ( script as ScriptMatchInfo ) . customUrlPatterns || null ,
164+ isEffective : null ,
165165 } ;
166166 }
167167
168168 // 获取popup页面数据
169169 async getPopupData ( req : GetPopupDataReq ) : Promise < GetPopupDataRes > {
170- const [ scripts , runScripts , backScriptList ] = await Promise . all ( [
171- this . runtime . getPageScriptByUrl ( req . url , true ) ,
170+ const [ matchingResult , runScripts , backScriptList ] = await Promise . all ( [
171+ this . runtime . getPageScriptMatchingResultByUrl ( req . url , true ) ,
172172 this . getScriptMenu ( req . tabId ) ,
173173 this . getScriptMenu ( - 1 ) ,
174174 ] ) ;
@@ -177,15 +177,17 @@ export class PopupService {
177177 // 合并后结果
178178 const scriptMenuMap = new Map < string , ScriptMenu > ( ) ;
179179 // 合并数据
180- for ( const script of scripts ) {
181- let run = runMap . get ( script . uuid ) ;
180+ for ( const [ uuid , o ] of matchingResult ) {
181+ const script = o . matchInfo || ( { } as TScriptMatchInfoEntry ) ;
182+ let run = runMap . get ( uuid ) ;
182183 if ( run ) {
183184 // 如果脚本已经存在,则不添加,更新信息
184185 run . enable = script . status === SCRIPT_STATUS_ENABLE ;
185- run . customUrlPatterns = script . customUrlPatterns || run . customUrlPatterns ;
186+ run . isEffective = o . effective ! ;
186187 run . hasUserConfig = ! ! script . config ;
187188 } else {
188189 run = this . scriptToMenu ( script ) ;
190+ run . isEffective = o . effective ! ;
189191 }
190192 scriptMenuMap . set ( script . uuid , run ) ;
191193 }
@@ -214,15 +216,7 @@ export class PopupService {
214216 return cacheInstance . tx < ScriptMenu [ ] > ( cacheKey , ( menu ) => callback ( menu || [ ] ) ) ;
215217 }
216218
217- async addScriptRunNumber ( {
218- tabId,
219- frameId,
220- scripts,
221- } : {
222- tabId : number ;
223- frameId : number ;
224- scripts : ScriptMatchInfo [ ] ;
225- } ) {
219+ async addScriptRunNumber ( { tabId, frameId, scripts } : { tabId : number ; frameId : number ; scripts : Script [ ] } ) {
226220 // 设置数据
227221 return await this . txUpdateScriptMenu ( tabId , async ( data ) => {
228222 if ( ! frameId ) {
@@ -238,6 +232,7 @@ export class PopupService {
238232 }
239233 } else {
240234 const item = this . scriptToMenu ( script ) ;
235+ item . isEffective = true ;
241236 item . runNum = 1 ;
242237 if ( frameId ) {
243238 item . runNumByIframe = 1 ;
@@ -501,16 +496,7 @@ export class PopupService {
501496 // 监听运行次数
502497 this . mq . subscribe (
503498 "pageLoad" ,
504- async ( {
505- tabId,
506- frameId,
507- scripts,
508- } : {
509- tabId : number ;
510- frameId : number ;
511- document : string ;
512- scripts : ScriptMatchInfo [ ] ;
513- } ) => {
499+ async ( { tabId, frameId, scripts } : { tabId : number ; frameId : number ; document : string ; scripts : Script [ ] } ) => {
514500 await this . addScriptRunNumber ( { tabId, frameId, scripts } ) ;
515501 // 设置角标
516502 await this . updateBadgeIcon ( tabId ) ;
0 commit comments