Skip to content

Commit 3c8a2a5

Browse files
committed
fix : somewhat fix discord login for linux
1 parent 9cec223 commit 3c8a2a5

File tree

1 file changed

+16
-23
lines changed

1 file changed

+16
-23
lines changed

lib/Api/Discord/Login.dart

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class LinuxLogin extends StatefulWidget {
103103
}
104104

105105
class LinuxLoginState extends State<LinuxLogin> {
106-
Webview? _controller;
106+
late Webview _controller;
107107

108108
@override
109109
void initState() {
@@ -112,36 +112,29 @@ class LinuxLoginState extends State<LinuxLogin> {
112112
}
113113

114114
Future<void> _initializeWebview() async {
115-
final controller = await WebviewWindow.create();
115+
_controller = await WebviewWindow.create();
116116

117-
_controller = controller;
118-
119-
controller
117+
_controller
120118
..setBrightness(Brightness.dark)
121119
..launch('https://discord.com/login');
122120

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+
);
134128
}
135129

130+
136131
Future<void> _extractToken() async {
137132
try {
138-
final result = await _controller?.evaluateJavaScript('''
133+
final result = await _controller.evaluateJavaScript('''
139134
(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+
})()''');
145138

146139
if (result != null && result != 'null') {
147140
_login(result.trim().replaceAll('"', ''));
@@ -168,7 +161,7 @@ class LinuxLoginState extends State<LinuxLogin> {
168161

169162
@override
170163
void dispose() {
171-
_controller?.close();
164+
_controller.close();
172165
super.dispose();
173166
}
174167

0 commit comments

Comments
 (0)