1
1
const { ElementFromFile, templatePath } = require ( "../utils" ) ;
2
2
const { ipcRenderer } = require ( "electron" ) ;
3
3
4
- const config = require ( "./config" ) ;
4
+ const configProvider = require ( "./config" ) ;
5
+ let config ;
5
6
6
7
function $ ( selector ) { return document . querySelector ( selector ) ; }
7
8
8
9
const captionsSettingsButton = ElementFromFile (
9
10
templatePath ( __dirname , "captions-settings-template.html" )
10
11
) ;
11
12
12
- module . exports = ( ) => {
13
+ module . exports = async ( ) => {
14
+ config = await configProvider . getAll ( ) ;
15
+
16
+ configProvider . subscribeAll ( ( newConfig ) => {
17
+ config = newConfig ;
18
+ } ) ;
13
19
document . addEventListener ( 'apiLoaded' , ( event ) => setup ( event . detail ) , { once : true , passive : true } ) ;
14
20
}
15
21
@@ -19,7 +25,7 @@ function setup(api) {
19
25
let captionTrackList = api . getOption ( "captions" , "tracklist" ) ;
20
26
21
27
$ ( "video" ) . addEventListener ( "srcChanged" , async ( ) => {
22
- if ( await config . get ( ' disableCaptions' ) ) {
28
+ if ( config . disableCaptions ) {
23
29
setTimeout ( ( ) => api . unloadModule ( "captions" ) , 100 ) ;
24
30
captionsSettingsButton . style . display = "none" ;
25
31
return ;
@@ -30,9 +36,9 @@ function setup(api) {
30
36
setTimeout ( async ( ) => {
31
37
captionTrackList = api . getOption ( "captions" , "tracklist" ) ;
32
38
33
- if ( await config . get ( " autoload" ) && await config . get ( " lastCaptionsCode" ) ) {
39
+ if ( config . autoload && config . lastCaptionsCode ) {
34
40
api . setOption ( "captions" , "track" , {
35
- languageCode : await config . get ( " lastCaptionsCode" ) ,
41
+ languageCode : config . lastCaptionsCode ,
36
42
} ) ;
37
43
}
38
44
@@ -58,7 +64,7 @@ function setup(api) {
58
64
if ( currentIndex === null ) return ;
59
65
60
66
const newCaptions = captionTrackList [ currentIndex ] ;
61
- config . set ( 'lastCaptionsCode' , newCaptions ?. languageCode ) ;
67
+ configProvider . set ( 'lastCaptionsCode' , newCaptions ?. languageCode ) ;
62
68
if ( newCaptions ) {
63
69
api . setOption ( "captions" , "track" , { languageCode : newCaptions . languageCode } ) ;
64
70
} else {
0 commit comments