@@ -103,7 +103,7 @@ class LinuxLogin extends StatefulWidget {
103
103
}
104
104
105
105
class LinuxLoginState extends State <LinuxLogin > {
106
- Webview ? _controller;
106
+ late Webview _controller;
107
107
108
108
@override
109
109
void initState () {
@@ -112,36 +112,29 @@ class LinuxLoginState extends State<LinuxLogin> {
112
112
}
113
113
114
114
Future <void > _initializeWebview () async {
115
- final controller = await WebviewWindow .create ();
115
+ _controller = await WebviewWindow .create ();
116
116
117
- _controller = controller;
118
-
119
- controller
117
+ _controller
120
118
..setBrightness (Brightness .dark)
121
119
..launch ('https://discord.com/login' );
122
120
123
- controller.addOnUrlRequestCallback ((url) async {
124
- if (url.startsWith ('https://discord.com/login' )) {
125
- return ;
126
- }
127
-
128
- await _extractToken ();
129
- });
130
-
131
- controller.onClose.whenComplete (() {
132
- _controller = null ;
133
- });
121
+ _controller.addOnUrlRequestCallback (
122
+ (String url) async {
123
+ if (url != 'https://discord.com/login' && url != 'about:blank' ) {
124
+ await _extractToken ();
125
+ }
126
+ },
127
+ );
134
128
}
135
129
130
+
136
131
Future <void > _extractToken () async {
137
132
try {
138
- final result = await _controller? .evaluateJavaScript ('''
133
+ final result = await _controller.evaluateJavaScript ('''
139
134
(function() {
140
- const wreq = (webpackChunkdiscord_app.push([[''], {}, e => { m = []; for (let c in e.c) m.push(e.c[c]) }]), m)
141
- .find(m => m?.exports?.default?.getToken !== void 0).exports.default.getToken();
142
- return wreq;
143
- })();
144
- ''' );
135
+ const m = []; webpackChunkdiscord_app.push([[""], {}, e => {for (let c in e.c)m.push(e.c[c])}]);
136
+ return m.find(n => n?.exports?.default?.getToken !== void 0)?.exports?.default?.getToken();
137
+ })()''' );
145
138
146
139
if (result != null && result != 'null' ) {
147
140
_login (result.trim ().replaceAll ('"' , '' ));
@@ -168,7 +161,7 @@ class LinuxLoginState extends State<LinuxLogin> {
168
161
169
162
@override
170
163
void dispose () {
171
- _controller? .close ();
164
+ _controller.close ();
172
165
super .dispose ();
173
166
}
174
167
0 commit comments