From cabf9cb842444dca98aa4921fb42c1380b1ebea4 Mon Sep 17 00:00:00 2001 From: Hofei90 <29521028+hofei90@users.noreply.github.com> Date: Sun, 8 Mar 2020 21:49:03 +0100 Subject: [PATCH] Initial Commit --- empyrion_launcher.py | 121 +++++++++++++++++++++++++ empyrion_launcher.ui | 207 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 328 insertions(+) create mode 100644 empyrion_launcher.py create mode 100644 empyrion_launcher.ui diff --git a/empyrion_launcher.py b/empyrion_launcher.py new file mode 100644 index 0000000..96ec9df --- /dev/null +++ b/empyrion_launcher.py @@ -0,0 +1,121 @@ +import sys +from PyQt5 import QtWidgets, uic, QtGui +import toml +import os +import shutil +import subprocess + + +class EmpyrionLauncher(QtWidgets.QDialog): + def __init__(self, parent=None): + super().__init__(parent) + uidatei = os.path.join(PFAD, "empyrion_launcher.ui") + self.ui = uic.loadUi(uidatei, self) + self.text_status_pfade = None + self.status_pfade = False + self.spiel_aktiv = True + + # Slots + # Buttons Tag Launcher + self.ui.button_beenden.clicked.connect(self.on_beenden) + # Buttons Tab Einstellungen + self.ui.button_ok.clicked.connect(self.on_ok) + self.ui.button_abbrechen.clicked.connect(self.on_abbrechen) + + # Inlines ausfüllen + self.on_abbrechen() + self.cloud_lokal_verschieben() + + def on_spiel_starten(self): + dateiname = os.path.join(CONFIG["pfad_cloud"], "aktiv_{}".format(CONFIG["username"])) + with open(dateiname, "w") as file: + file.write("") + subprocess.call(CONFIG["pfad_game"]) + os.remove(dateiname) + + def on_beenden(self): + self.close() + + def on_ok(self): + CONFIG["username"] = self.ui.username.text() + CONFIG["pfad_lokal"] = self.ui.pfad_lokal.text() + CONFIG["pfad_cloud"] = self.ui.pfad_cloud.text() + CONFIG["pfad_game"] = self.ui.pfad_game.text() + CONFIG["savegame"] = self.ui.savegame.text() + ausgabe = {"config": CONFIG} + with open(DATEITOML, "w") as file: + file.write(toml.dumps(ausgabe)) + self.check_pfad() + "{} - gespeichert".format(self.text_status_pfade) + self.label_status_pfade.setText("{} - gespeichert".format(self.text_status_pfade)) + + def on_abbrechen(self): + self.ui.username.setText(CONFIG["username"]) + self.ui.pfad_lokal.setText(CONFIG["pfad_lokal"]) + self.ui.pfad_cloud.setText(CONFIG["pfad_cloud"]) + self.ui.pfad_game.setText(CONFIG["pfad_game"]) + self.ui.savegame.setText(CONFIG["savegame"]) + self.label_status_pfade.setText(self.text_status_pfade) + + def cloud_lokal_verschieben(self): + self.check_pfad() + if self.status_pfade: + ordnerinhalt = os.listdir(CONFIG["pfad_cloud"]) + self.spiel_aktiv = True + for ordner in ordnerinhalt: + if ordner.startswith(CONFIG["savegame"]): + self.spiel_aktiv = False + quelle = os.path.join(CONFIG["pfad_cloud"], ordner) + shutil.move(quelle, CONFIG["pfad_lokal"]) + if self.spiel_aktiv: + user = "unbekannt" + for datei in ordnerinhalt: + if datei.startswith("aktiv"): + user = datei.split("_")[1] + self.label_spiel_aktiv.setText("Spiel schon aktiv von {}".format(user)) + else: + self.label_spiel_aktiv.setText("Kein Spiel aktiv") + self.ui.button_spiel_starten.clicked.connect(self.on_spiel_starten) + + def lokal_cloud_verschieben(self): + self.check_pfad() + if self.status_pfade: + ordnerinhalt = os.listdir(CONFIG["pfad_lokal"]) + for ordner in ordnerinhalt: + if ordner.startswith(CONFIG["savegame"]): + quelle = os.path.join(CONFIG["pfad_lokal"], ordner) + shutil.move(quelle, CONFIG["pfad_cloud"]) + + def check_pfad(self): + self.status_pfade = False + pfad_lokal = os.path.isdir(CONFIG["pfad_lokal"]) + pfad_cloud = os.path.isdir(CONFIG["pfad_cloud"]) + pfad_game = os.path.isfile(CONFIG["pfad_game"]) + textausgabe = "" + if not pfad_lokal: + textausgabe = "{}Pfad Lokal, ".format(textausgabe) + if not pfad_cloud: + textausgabe = "{}Pfad Cloud, ".format(textausgabe) + if not pfad_game: + textausgabe = "{}Pfad Game, ".format(textausgabe) + if not pfad_lokal or not pfad_cloud or not pfad_game: + textausgabe = "{} existiert nicht".format(textausgabe) + else: + textausgabe = "Alle Pfade ok!" + self.status_pfade = True + self.text_status_pfade = textausgabe + self.ui.label_status_pfade.setText(self.text_status_pfade) + + def closeEvent(self, a0: QtGui.QCloseEvent): + self.lokal_cloud_verschieben() + + +PFAD = os.path.abspath(os.path.dirname(__file__)) +DATEITOML = os.path.join(PFAD, "config.toml") +with open(DATEITOML) as file: + CONFIG = toml.loads(file.read())["config"] +app = QtWidgets.QApplication(sys.argv) +dialog = EmpyrionLauncher() +dialog.setWindowTitle("Empyrion Launcher") +dialog.show() +sys.exit(app.exec_()) diff --git a/empyrion_launcher.ui b/empyrion_launcher.ui new file mode 100644 index 0000000..abf1212 --- /dev/null +++ b/empyrion_launcher.ui @@ -0,0 +1,207 @@ + + + Dialog + + + + 0 + 0 + 386 + 318 + + + + Dialog + + + + + + 0 + + + + Launcher + + + + + 0 + 0 + 271 + 181 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + spiel_aktiv + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + status start + + + + + + + Spiel starten! + + + + + + + + + Beenden + + + + + + + + + Einstellungen + + + + + 0 + 0 + 361 + 201 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + Pfad Lokal + + + + + + + + + + Pfad Cloud + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Status Pfade + + + + + + + OK + + + + + + + Abbrechen + + + + + + + + + Username + + + + + + + Pfad+EXE Game + + + + + + + + + + Savegame + + + + + + + + + + + + + + + +