Skip to content

Commit 2b99b8a

Browse files
committed
Fixes
1 parent d626ec0 commit 2b99b8a

File tree

4 files changed

+55
-19
lines changed

4 files changed

+55
-19
lines changed

Libs/CreamApiMaker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def get_dlc_list(self, app_id, errors=0):
5858
"Upgrade-Insecure-Requests": "1"
5959
}
6060
try:
61-
response = get(url, headers=headers, timeout=3)
61+
response = get(url, headers=headers, timeout=8)
6262
data = response.json()
6363
dlc_list_json = data['data'][str(app_id)]['extended']['listofdlc']
6464
dlc_list = dlc_list_json.split(',')

Libs/GamePath.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,31 @@ def stellaris_path():
4646
return 0
4747

4848

49+
def is_drive_root(path: str) -> bool:
50+
if not path:
51+
return False
52+
norm = os.path.normpath(path)
53+
drive, tail = os.path.splitdrive(norm)
54+
return bool(drive) and (tail in ("", os.sep))
55+
56+
4957
def launcher_path():
5058
try:
5159
user_logon_name = get_user_logon_name()
5260
except:
5361
user_logon_name = os.getlogin()
62+
5463
user_home = os.path.join("C:\\Users", user_logon_name)
64+
5565
launcher_path_1 = reg_search(r"Software\Paradox Interactive\Paradox Launcher v2", "LauncherInstallation")
5666
launcher_path_2 = reg_search(r"Software\Paradox Interactive\Paradox Launcher v2", "LauncherPathFolder")
5767

58-
if not launcher_path_1:
68+
if (launcher_path_1 and is_drive_root(launcher_path_1)) or not launcher_path_1:
5969
launcher_path_1 = os.path.join(user_home, "AppData", "Local", "Programs", "Paradox Interactive", "launcher")
60-
if not launcher_path_2:
70+
if (launcher_path_2 and is_drive_root(launcher_path_2)) or not launcher_path_2:
6171
launcher_path_2 = os.path.join(user_home, "AppData", "Local", "Paradox Interactive")
6272

73+
6374
launcher_path_3 = os.path.join(user_home, "AppData", "Roaming", "Paradox Interactive")
6475
launcher_path_4 = os.path.join(user_home, "AppData", "Roaming", "paradox-launcher-v2")
6576

Libs/LauncherReinstall.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,17 @@ def __init__(self, msi_path, paradox_folder1, paradox_folder2, paradox_folder3,
2727
def run(self):
2828
user_home = os.path.join("C:\\Users", self.user_logon_name)
2929
if self.paradox_folder1 == self.msi_path:
30-
self.paradox_folder1 = os.path.join(user_home, "AppData", "Local", "Programs", "Paradox Interactive", "launcher")
30+
self.paradox_folder1 = os.path.join(user_home, "AppData", "Local", "Programs", "Paradox Interactive",
31+
"launcher")
3132
latest_file = None
3233
latest_version = (0, 0)
34+
3335
def extract_version(filename):
3436
match = search(r'launcher-installer-windows_(\d+\.\d+)', filename)
3537
if match:
3638
return tuple(map(int, match.group(1).split('.')))
3739
return None
40+
3841
msi_files = glob(os.path.join(self.msi_path, "launcher-installer-windows_*.msi"))
3942
if self.launcher_downloaded:
4043
print('Alt unlock. Deleting all other launches')
@@ -103,18 +106,30 @@ def paradox_remove(paradox_folder1, paradox_folder2, paradox_folder3, paradox_fo
103106
if os.path.exists(paradox_folder1):
104107
print(f'Removing {paradox_folder1}')
105108
rmtree(paradox_folder1)
109+
except Exception as e:
110+
print(f'Cant delete {e}')
111+
pass
106112

113+
try:
107114
if os.path.exists(paradox_folder2):
108115
print(f'Removing {paradox_folder2}')
109116
rmtree(paradox_folder2)
117+
except Exception as e:
118+
print(f'Cant delete {e}')
119+
pass
110120

121+
try:
111122
if os.path.exists(paradox_folder3):
112123
print(f'Removing {paradox_folder3}')
113124
rmtree(paradox_folder3)
125+
except Exception as e:
126+
print(f'Cant delete {e}')
127+
pass
114128

129+
try:
115130
if os.path.exists(paradox_folder4):
116131
print(f'Removing {paradox_folder4}')
117132
rmtree(paradox_folder4)
118133
except Exception as e:
119134
print(f'Cant delete {e}')
120-
pass
135+
pass

UI_logic/MainWindow.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
import winreg
88
from PyQt5.QtGui import QDesktopServices, QColor, QBrush, QIcon
99
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QListWidgetItem, QProgressDialog, QApplication
10-
from PyQt5.QtCore import Qt, QUrl, QTimer, QTranslator
10+
from PyQt5.QtCore import Qt, QUrl, QTimer, QTranslator, QLocale
1111
from subprocess import run, CREATE_NO_WINDOW
1212
from pathlib import Path
13-
from locale import getlocale
1413

1514
import UI.ui_main as ui_main
1615
from Libs.ConnectionCheck import ConnectionCheckThread
@@ -66,7 +65,7 @@ def __init__(self):
6665
self.creamapidone = False
6766

6867
self.GITHUB_REPO = "https://api.github.com/repos/seuyh/stellaris-dlc-unlocker/releases/latest"
69-
self.current_version = '2.25'
68+
self.current_version = '2.263'
7069
self.version_label.setText(f'Ver. {str(self.current_version)}')
7170

7271
self.copy_files_radio.setVisible(False)
@@ -118,17 +117,20 @@ def __init__(self):
118117
self.log_widget.clear()
119118

120119
def get_app_language(self):
121-
lang, _ = getlocale()
120+
lang = QLocale.system().name().lower()
121+
print(f"Detected language: {lang}")
122122
if not lang:
123123
return "en"
124124
lang = lang.lower()
125-
if "russian" in lang:
125+
if lang.startswith("ru"):
126126
return "ru"
127-
elif "chinese" in lang:
127+
elif lang.startswith("zh"):
128128
return "zh"
129129
else:
130130
return "en"
131131

132+
def apply_initial_language(self):
133+
self.set_language_radio(self.get_app_language())
132134

133135
def set_language_radio(self, lang):
134136
if lang == "ru":
@@ -143,23 +145,27 @@ def set_language_radio(self, lang):
143145
def apply_language(self, lang):
144146
app = QApplication.instance()
145147
app.removeTranslator(self.translator)
148+
print(f"Trying to apply language: {lang}")
146149

147150
if lang == "ru":
148-
if self.translator.load(os.path.join("UI", "translations", "ru_RU.qm")):
149-
app.installTranslator(self.translator)
151+
ok = self.translator.load(os.path.join(self.parent_directory, "UI", "translations", "ru_RU.qm"))
150152
elif lang == "zh":
151-
if self.translator.load(os.path.join("UI", "translations", "zh_CN.qm")):
152-
app.installTranslator(self.translator)
153+
ok = self.translator.load(os.path.join(self.parent_directory, "UI", "translations", "zh_CN.qm"))
154+
else:
155+
ok = False
156+
157+
if ok:
158+
app.installTranslator(self.translator)
153159

154160
self.retranslateUi(self)
155161

156162
def showEvent(self, event):
157163
super(MainWindow, self).showEvent(event)
158-
self.set_language_radio(self.get_app_language())
164+
self.apply_initial_language()
159165
print('Start connection check')
160-
QTimer.singleShot(5, self.start_connection_check)
166+
QTimer.singleShot(2, self.start_connection_check)
161167
print('Start updates check')
162-
QTimer.singleShot(4, lambda: self.check_for_updates(self.current_version))
168+
QTimer.singleShot(2, lambda: self.check_for_updates(self.current_version))
163169

164170
def switch_to_russian(self):
165171
if self.ru_lang.isChecked():
@@ -294,7 +300,7 @@ def check_for_updates(self, current_version):
294300
latest_release = response.json()
295301
latest_version = latest_release['tag_name']
296302

297-
if latest_version != current_version:
303+
if latest_version > current_version:
298304
print(f"Found new version: {latest_version}.")
299305
if self.dialogexec(self.tr('New version'),
300306
self.tr('New version found\nPlease update the program to correctly work '),
@@ -305,6 +311,9 @@ def check_for_updates(self, current_version):
305311
exe_asset_url = asset['browser_download_url']
306312
self.open_link_in_browser(exe_asset_url)
307313
self.close()
314+
elif latest_version < current_version:
315+
self.errorexec(self.tr("Beta"), self.tr("Ok"),
316+
exitApp=False)
308317
else:
309318
print(f"Unlocker is up to date")
310319
except:
@@ -593,6 +602,7 @@ def reinstall(self):
593602
self.download_files_radio.setChecked(True)
594603
print('Reinstalling')
595604
paradox_folder1, paradox_folder2, paradox_folder3, paradox_folder4 = launcher_path()
605+
print(f"Launcher folders: [{paradox_folder1, paradox_folder2, paradox_folder3, paradox_folder4}]")
596606
if not self.skip_launcher_reinstall_checbox.isChecked():
597607
self.reinstall_thread = ReinstallThread(self.game_path, paradox_folder1, paradox_folder2, paradox_folder3,
598608
paradox_folder4, self.launcher_downloaded,

0 commit comments

Comments
 (0)