mirror of
https://github.com/283375/arcaea-offline-pyside-ui.git
synced 2025-07-01 12:26:26 +00:00
feat: import from Online
This commit is contained in:
@ -5,6 +5,7 @@ import zipfile
|
||||
|
||||
from arcaea_offline.database import Database
|
||||
from arcaea_offline.external.arcaea import (
|
||||
ArcaeaOnlineParser,
|
||||
PacklistParser,
|
||||
SonglistDifficultiesParser,
|
||||
SonglistParser,
|
||||
@ -178,6 +179,31 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
|
||||
self, "Import Error", "\n".join(traceback.format_exception(e))
|
||||
)
|
||||
|
||||
@Slot()
|
||||
def on_importOnlineButton_clicked(self):
|
||||
apiResultFile, filter = QFileDialog.getOpenFileName(
|
||||
self, "Select API result JSON file"
|
||||
)
|
||||
|
||||
if not apiResultFile:
|
||||
return
|
||||
|
||||
try:
|
||||
db = Database()
|
||||
parser = ArcaeaOnlineParser(apiResultFile)
|
||||
logger.info(
|
||||
f"Got {len(parser.parse())} items from {apiResultFile}, writing into database..."
|
||||
)
|
||||
with db.sessionmaker() as session:
|
||||
parser.write_database(session)
|
||||
session.commit()
|
||||
QMessageBox.information(self, None, "OK")
|
||||
except Exception as e:
|
||||
logging.exception("import Arcaea Online error")
|
||||
QMessageBox.critical(
|
||||
self, "Import Error", "\n".join(traceback.format_exception(e))
|
||||
)
|
||||
|
||||
@Slot()
|
||||
def on_exportScoresButton_clicked(self):
|
||||
scores = Database().export_scores()
|
||||
|
Reference in New Issue
Block a user