2023-09-22 19:37:46 +08:00

56 lines
1.6 KiB
Python

import logging
import sys
import traceback
from arcaea_offline.database import Database
from PySide6.QtCore import QCoreApplication, QLocale
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QDialog, QMessageBox
import ui.resources.resources_rc
from ui.extends.shared.language import changeAppLanguage
from ui.extends.shared.settings import Settings
from ui.implements.mainwindow import MainWindow
from ui.startup.databaseChecker import DatabaseChecker, DatabaseCheckerResult
logging.basicConfig(
level=logging.INFO,
stream=sys.stdout,
force=True,
format="[{levelname}]{asctime}|{name}: {msg}",
datefmt="%m-%d %H:%M:%S",
style="{",
)
if __name__ == "__main__":
QCoreApplication.setApplicationName("Arcaea Offline")
app = QApplication(sys.argv)
locale = (
QLocale(Settings().language()) if Settings().language() else QLocale.system()
)
changeAppLanguage(locale)
databaseChecker = DatabaseChecker()
databaseChecker.setWindowIcon(QIcon(":/images/icon.png"))
databaseCheckResult = databaseChecker.confirmDb()
if not databaseCheckResult & DatabaseCheckerResult.Initted:
result = databaseChecker.exec()
if result == QDialog.DialogCode.Accepted:
try:
Database()
except Exception as e:
QMessageBox.critical(
None, "Database Error", "\n".join(traceback.format_exception(e))
)
sys.exit(1)
else:
sys.exit(1)
window = MainWindow()
window.setWindowIcon(QIcon(":/images/icon.png"))
window.show()
sys.exit(app.exec())