1+ import { ExternalMessage , ExtVersion , Server } from "@App/app/const" ;
12import IoC from "@App/app/ioc" ;
23import { MessageHander } from "@App/app/message/message" ;
4+ import { ScriptDAO } from "@App/app/repo/scripts" ;
35import { SystemConfig } from "@App/pkg/config/config" ;
46import Manager from "../manager" ;
57
@@ -8,17 +10,18 @@ import Manager from "../manager";
810export class SystemManager extends Manager {
911 systemConfig : SystemConfig ;
1012
13+ scriptDAO : ScriptDAO ;
14+
1115 constructor ( message : MessageHander , systemConfig : SystemConfig ) {
12- super ( message ) ;
16+ super ( message , "system" ) ;
17+ this . scriptDAO = new ScriptDAO ( ) ;
1318 this . systemConfig = systemConfig ;
1419 }
1520
1621 init ( ) {
1722 // 两小时检查一次更新
1823 const checkUpdate = ( ) => {
19- fetch (
20- `${ this . systemConfig . server } api/v1/system/version?version=${ this . systemConfig . version } `
21- )
24+ fetch ( `${ Server } api/v1/system/version?version=${ ExtVersion } ` )
2225 . then ( ( resp ) => resp . json ( ) )
2326 . then ( ( resp : { data : { notice : string ; version : string } } ) => {
2427 chrome . storage . local . get ( [ "notice" ] , ( items ) => {
@@ -50,6 +53,33 @@ export class SystemManager extends Manager {
5053 }
5154 } ) ;
5255 }
56+ // 处理
57+ this . message . setHandler (
58+ ExternalMessage ,
59+ async (
60+ _action ,
61+ {
62+ action,
63+ name,
64+ namespace,
65+ } : { action : string ; name : string ; namespace : string }
66+ ) => {
67+ if ( action === "isInstalled" ) {
68+ const script = await this . scriptDAO . findByNameAndNamespace (
69+ name ,
70+ namespace
71+ ) ;
72+ if ( script ) {
73+ return Promise . resolve ( {
74+ installed : true ,
75+ version : script . metadata . version && script . metadata . version [ 0 ] ,
76+ } ) ;
77+ }
78+ return Promise . resolve ( { installed : false } ) ;
79+ }
80+ return Promise . resolve ( false ) ;
81+ }
82+ ) ;
5383 }
5484
5585 getNotice ( ) : Promise < { notice : string ; isRead : boolean } > {
0 commit comments