Remove login successful page and auto parse sid
This commit is contained in:
parent
4afff97893
commit
6ba445158d
4 changed files with 26 additions and 42 deletions
|
@ -17,12 +17,11 @@ class LoginPages:
|
||||||
landing: int
|
landing: int
|
||||||
browser: int
|
browser: int
|
||||||
import_egl: int
|
import_egl: int
|
||||||
success: int
|
|
||||||
|
|
||||||
|
|
||||||
class LoginDialog(QDialog, Ui_LoginDialog):
|
class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
logged_in: bool = False
|
logged_in: bool = False
|
||||||
pages = LoginPages(landing=0, browser=1, import_egl=2, success=3)
|
pages = LoginPages(landing=0, browser=1, import_egl=2)
|
||||||
|
|
||||||
def __init__(self, core: LegendaryCore, parent=None):
|
def __init__(self, core: LegendaryCore, parent=None):
|
||||||
super(LoginDialog, self).__init__(parent=parent)
|
super(LoginDialog, self).__init__(parent=parent)
|
||||||
|
@ -36,7 +35,7 @@ class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
self.login_stack.insertWidget(self.pages.browser, self.browser_page)
|
self.login_stack.insertWidget(self.pages.browser, self.browser_page)
|
||||||
self.browser_page.success.connect(self.login_successful)
|
self.browser_page.success.connect(self.login_successful)
|
||||||
self.browser_page.changed.connect(
|
self.browser_page.changed.connect(
|
||||||
lambda: self.next_button.setEnabled(self.browser_page.is_valid())
|
self.next_button.setEnabled
|
||||||
)
|
)
|
||||||
self.import_page = ImportLogin(self.core, self.login_stack)
|
self.import_page = ImportLogin(self.core, self.login_stack)
|
||||||
self.login_stack.insertWidget(self.pages.import_egl, self.import_page)
|
self.login_stack.insertWidget(self.pages.import_egl, self.import_page)
|
||||||
|
@ -88,12 +87,7 @@ class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
try:
|
try:
|
||||||
if self.core.login():
|
if self.core.login():
|
||||||
self.logged_in = True
|
self.logged_in = True
|
||||||
self.welcome_label.setText(
|
self.close()
|
||||||
self.welcome_label.text().replace("</h1>", f", {self.core.lgd.userdata['displayName']}</h1>")
|
|
||||||
)
|
|
||||||
self.exit_button.setVisible(False)
|
|
||||||
self.back_button.setVisible(False)
|
|
||||||
self.login_stack.setCurrentIndex(self.pages.success)
|
|
||||||
else:
|
else:
|
||||||
raise ValueError("Login failed.")
|
raise ValueError("Login failed.")
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
|
|
|
@ -13,7 +13,7 @@ logger = getLogger("BrowserLogin")
|
||||||
|
|
||||||
class BrowserLogin(QWidget, Ui_BrowserLogin):
|
class BrowserLogin(QWidget, Ui_BrowserLogin):
|
||||||
success = pyqtSignal()
|
success = pyqtSignal()
|
||||||
changed = pyqtSignal()
|
changed = pyqtSignal(bool)
|
||||||
login_url = "https://www.epicgames.com/id/login?redirectUrl=https%3A%2F%2Fwww.epicgames.com%2Fid%2Fapi%2Fredirect"
|
login_url = "https://www.epicgames.com/id/login?redirectUrl=https%3A%2F%2Fwww.epicgames.com%2Fid%2Fapi%2Fredirect"
|
||||||
|
|
||||||
def __init__(self, core: LegendaryCore, parent=None):
|
def __init__(self, core: LegendaryCore, parent=None):
|
||||||
|
@ -23,10 +23,26 @@ class BrowserLogin(QWidget, Ui_BrowserLogin):
|
||||||
self.core = core
|
self.core = core
|
||||||
|
|
||||||
self.open_button.clicked.connect(self.open_browser)
|
self.open_button.clicked.connect(self.open_browser)
|
||||||
self.sid_edit.textChanged.connect(self.changed.emit)
|
self.sid_edit.textChanged.connect(self.text_changed)
|
||||||
|
|
||||||
def is_valid(self):
|
def is_valid(self, text: str):
|
||||||
return len(self.sid_edit.text()) == 32
|
if text:
|
||||||
|
return len(text) == 32
|
||||||
|
else:
|
||||||
|
return len(self.sid_edit.text()) == 32
|
||||||
|
|
||||||
|
def text_changed(self, text):
|
||||||
|
if not self.is_valid(text):
|
||||||
|
try:
|
||||||
|
sid = json.loads(text).get("sid")
|
||||||
|
if sid and self.is_valid(sid):
|
||||||
|
self.sid_edit.setText(sid)
|
||||||
|
self.status_label.setText(self.tr("Parsed sid from pasted text"))
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
self.changed.emit(False)
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.changed.emit(True)
|
||||||
|
|
||||||
def do_login(self):
|
def do_login(self):
|
||||||
self.status_label.setText(self.tr("Logging in..."))
|
self.status_label.setText(self.tr("Logging in..."))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'login_dialog.ui'
|
# Form implementation generated from reading ui file 'rare/ui/components/dialogs/login/login_dialog.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.15.4
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
#
|
#
|
||||||
|
@ -78,14 +78,6 @@ class Ui_LoginDialog(object):
|
||||||
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
self.login_page_layout.addItem(spacerItem2, 1, 2, 2, 1)
|
self.login_page_layout.addItem(spacerItem2, 1, 2, 2, 1)
|
||||||
self.login_stack.addWidget(self.login_page)
|
self.login_stack.addWidget(self.login_page)
|
||||||
self.success_page = QtWidgets.QWidget()
|
|
||||||
self.success_page.setObjectName("success_page")
|
|
||||||
self.success_page_layout = QtWidgets.QHBoxLayout(self.success_page)
|
|
||||||
self.success_page_layout.setObjectName("success_page_layout")
|
|
||||||
self.success_label = QtWidgets.QLabel(self.success_page)
|
|
||||||
self.success_label.setObjectName("success_label")
|
|
||||||
self.success_page_layout.addWidget(self.success_label)
|
|
||||||
self.login_stack.addWidget(self.success_page)
|
|
||||||
self.dialog_layout.addWidget(self.login_stack)
|
self.dialog_layout.addWidget(self.login_stack)
|
||||||
self.button_layout = QtWidgets.QHBoxLayout()
|
self.button_layout = QtWidgets.QHBoxLayout()
|
||||||
self.button_layout.setObjectName("button_layout")
|
self.button_layout.setObjectName("button_layout")
|
||||||
|
@ -103,7 +95,7 @@ class Ui_LoginDialog(object):
|
||||||
self.dialog_layout.addLayout(self.button_layout)
|
self.dialog_layout.addLayout(self.button_layout)
|
||||||
|
|
||||||
self.retranslateUi(LoginDialog)
|
self.retranslateUi(LoginDialog)
|
||||||
self.login_stack.setCurrentIndex(1)
|
self.login_stack.setCurrentIndex(0)
|
||||||
QtCore.QMetaObject.connectSlotsByName(LoginDialog)
|
QtCore.QMetaObject.connectSlotsByName(LoginDialog)
|
||||||
|
|
||||||
def retranslateUi(self, LoginDialog):
|
def retranslateUi(self, LoginDialog):
|
||||||
|
@ -115,8 +107,6 @@ class Ui_LoginDialog(object):
|
||||||
self.login_import_label.setText(_translate("LoginDialog", "Import from Epic Games Launcher"))
|
self.login_import_label.setText(_translate("LoginDialog", "Import from Epic Games Launcher"))
|
||||||
self.login_import_radio.setText(_translate("LoginDialog", "Import"))
|
self.login_import_radio.setText(_translate("LoginDialog", "Import"))
|
||||||
self.login_browser_radio.setText(_translate("LoginDialog", "Browser"))
|
self.login_browser_radio.setText(_translate("LoginDialog", "Browser"))
|
||||||
self.success_label.setText(_translate("LoginDialog",
|
|
||||||
"<html><head/><body><h2 style=\" margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:x-large; font-weight:600;\">Login Successful!</span></h2></body></html>"))
|
|
||||||
self.exit_button.setText(_translate("LoginDialog", "Exit"))
|
self.exit_button.setText(_translate("LoginDialog", "Exit"))
|
||||||
self.back_button.setText(_translate("LoginDialog", "Back"))
|
self.back_button.setText(_translate("LoginDialog", "Back"))
|
||||||
self.next_button.setText(_translate("LoginDialog", "Next"))
|
self.next_button.setText(_translate("LoginDialog", "Next"))
|
||||||
|
@ -124,7 +114,6 @@ class Ui_LoginDialog(object):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
LoginDialog = QtWidgets.QDialog()
|
LoginDialog = QtWidgets.QDialog()
|
||||||
ui = Ui_LoginDialog()
|
ui = Ui_LoginDialog()
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>1</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="login_page">
|
<widget class="QWidget" name="login_page">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -162,21 +162,6 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="success_page">
|
|
||||||
<layout class="QHBoxLayout" name="success_page_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="success_label">
|
|
||||||
<property name="text">
|
|
||||||
<string><html><head/><body><h2 style="
|
|
||||||
margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px;
|
|
||||||
-qt-block-indent:0; text-indent:0px;"><span style="
|
|
||||||
font-size:x-large; font-weight:600;">Login Successful!</span></h2></body></html>
|
|
||||||
</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|
Loading…
Reference in a new issue