wip: st3 import

This commit is contained in:
2023-08-19 01:37:28 +08:00
parent 38a08a4b17
commit b30a092f70
3 changed files with 52 additions and 1 deletions

View File

@ -2,6 +2,7 @@ import logging
import traceback
from arcaea_offline.database import Database
from arcaea_offline.external import St3ScoreSource
from PySide6.QtCore import Slot
from PySide6.QtWidgets import QFileDialog, QMessageBox, QWidget
@ -20,6 +21,10 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
dbFile, filter = QFileDialog.getOpenFileName(
self, None, "", "DB File (*.db);;*"
)
if not dbFile:
return
try:
Database().update_arcsong_db(dbFile)
QMessageBox.information(self, "OK", "OK")
@ -28,3 +33,23 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
QMessageBox.critical(
self, "Sync Error", "\n".join(traceback.format_exception(e))
)
@Slot()
def on_importSt3Button_clicked(self):
dbFile, filter = QFileDialog.getOpenFileName(self, "Select st3 file")
if not dbFile:
return
try:
scores = St3ScoreSource(dbFile).get_score_items()
logger.info(
f"Got {len(scores)} items from {dbFile}, writing into database..."
)
Database().import_external(scores)
QMessageBox.information(self, "OK", "OK")
except Exception as e:
logging.exception("import st3 error")
QMessageBox.critical(
self, "Import Error", "\n".join(traceback.format_exception(e))
)