diff --git a/Core/ShortcutsManager.py b/Core/ShortcutsManager.py index ab2eb98d..5d54f76c 100644 --- a/Core/ShortcutsManager.py +++ b/Core/ShortcutsManager.py @@ -27,10 +27,11 @@ class TwitchAPI(QThread): event_signal = pyqtSignal(dict) new_event_signal = pyqtSignal(dict) - def __init__(self, APP_ID, APP_SECRET): + def __init__(self, APP_ID, APP_SECRET, res_dir): super().__init__() self.APP_ID = APP_ID self.APP_SECRET = APP_SECRET + self.res_dir = res_dir self.PUBLIC_APP_ID = "v3pheb41eiqaal8e1pefkjrygpvjt8" self.TARGET_SCOPES = [ AuthScope.CHANNEL_MANAGE_REDEMPTIONS, @@ -105,7 +106,7 @@ async def authorize(self): self.twitch = await Twitch(self.APP_ID, self.APP_SECRET) helper = UserAuthenticationStorageHelper( self.twitch, self.TARGET_SCOPES, - storage_path=os.path.normpath(f"Data{os.path.sep}user_token.json") + storage_path=os.path.join(self.res_dir, "Data", "user_token.json") ) await helper.bind() except ClientConnectionError: diff --git a/Core/imageGallery.py b/Core/imageGallery.py index 0739ce9a..b87902b3 100644 --- a/Core/imageGallery.py +++ b/Core/imageGallery.py @@ -341,11 +341,12 @@ class ModelItem(QGroupBox): deleted = pyqtSignal() saving = pyqtSignal(str) - def __init__(self, modelName, modelType, exe_dir): + def __init__(self, modelName, modelType, exe_dir, res_dir): super().__init__() uic.loadUi(os.path.join(exe_dir, f"UI", "avatar.ui"), self) self.modelName = modelName self.modelType = modelType + self.res_dir = res_dir self.avatarButton.clicked.connect(self.selectedModel) self.avatarButton.setToolTip(f"Load {self.modelType}") @@ -362,7 +363,6 @@ def __init__(self, modelName, modelType, exe_dir): self.frame_2.hide() self.shortcutText.hide() - def saveChanges(self): self.saving.emit(self.modelName) @@ -386,12 +386,12 @@ def leaveEvent(self, event): def setup(self): self.setTitle(self.modelName) self.avatarButton.setIcon( - QIcon(f"Models{os.path.sep}{self.modelType}{os.path.sep}{self.modelName}{os.path.sep}thumb.png") + QIcon(os.path.join(self.res_dir, "Models", self.modelType, self.modelName, "thumb.png")) ) self.show_shortcut() def show_shortcut(self): - with open(f"Models{os.path.sep}{self.modelType}{os.path.sep}{self.modelName}{os.path.sep}data.json", + with open(os.path.join(self.res_dir, "Models", self.modelType, self.modelName, "data.json"), "r") as data_file: self.shortcuts = json.load(data_file)["shortcuts"] if self.shortcuts: @@ -438,11 +438,12 @@ class ModelGallery(QWidget): shortcut = pyqtSignal(dict) saving = pyqtSignal(str) - def __init__(self, models_list, models_type, exe_dir): + def __init__(self, models_list, models_type, exe_dir, res_dir): super().__init__() self.models_list = models_list self.models_type = models_type self.exe_dir = exe_dir + self.res_dir = res_dir layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) @@ -463,7 +464,7 @@ def load_models(self): self.add_model(model) def add_model(self, model): - model_item = ModelItem(model, self.models_type, self.exe_dir) + model_item = ModelItem(model, self.models_type, self.exe_dir, self.res_dir) model_item.selected.connect(self.selected.emit) model_item.deleted.connect(self.model_deleted) diff --git a/Data/settings.json b/Data/settings.json index 301c933b..138beb1a 100644 --- a/Data/settings.json +++ b/Data/settings.json @@ -2,7 +2,7 @@ "volume threshold": 22, "scream threshold": 93, "delay threshold": 14, - "microphone selection": 3, + "microphone selection": 2, "microphone mute": false, "background color": 0, "export mode": 0, diff --git a/main.py b/main.py index d2c7aa53..317c072c 100644 --- a/main.py +++ b/main.py @@ -371,7 +371,7 @@ def __init__(self): self.SettingsGallery.delete_shortcut.connect(self.delete_shortcut) self.scrollArea_2.setWidget(self.SettingsGallery) - self.ImageGallery = ImageGallery(self.current_files, exe_dir=exe_dir) + self.ImageGallery = ImageGallery(self.current_files, exe_dir=res_dir) self.ImageGallery.selectionChanged.connect(self.update_viewer) self.ImageGallery.currentChanged.connect(self.change_settings_gallery) self.scrollArea.setWidget(self.ImageGallery) @@ -388,15 +388,15 @@ def __init__(self): self.expressionSelector = ExpressionSelector("Assets") self.scrollArea_5.setWidget(self.expressionSelector) - self.savedAvatars = [folder for folder in os.listdir(os.path.normpath("Models/Avatars")) if "." not in folder] - self.modelGallery = ModelGallery(models_list=self.savedAvatars, models_type="Avatars", exe_dir=exe_dir) + self.savedAvatars = [folder for folder in os.listdir(os.path.join(res_dir, "Models", "Avatars")) if "." not in folder] + self.modelGallery = ModelGallery(models_list=self.savedAvatars, models_type="Avatars", exe_dir=exe_dir, res_dir=res_dir) self.modelGallery.saving.connect(self.save_avatar) self.modelGallery.selected.connect(self.load_model) self.modelGallery.shortcut.connect(self.dialog_shortcut) self.frameModels.layout().addWidget(self.modelGallery) - self.savedExpressions = [folder for folder in os.listdir(os.path.normpath("Models/Expressions")) if "." not in folder] - self.expressionGallery = ModelGallery(models_list=self.savedExpressions, models_type="Expressions", exe_dir=exe_dir) + self.savedExpressions = [folder for folder in os.listdir(os.path.join(res_dir, "Models", "Expressions")) if "." not in folder] + self.expressionGallery = ModelGallery(models_list=self.savedExpressions, models_type="Expressions", exe_dir=exe_dir, res_dir=res_dir) self.expressionGallery.saving.connect(self.save_expression) self.expressionGallery.selected.connect(self.load_model) self.expressionGallery.shortcut.connect(self.dialog_shortcut) @@ -561,7 +561,7 @@ def start_twitch_connection(self, values, starting=False): if values["APP_ID"] is None or values["APP_SECRET"] is None: return - self.TwitchAPI = TwitchAPI(APP_ID=values["APP_ID"], APP_SECRET=values["APP_SECRET"]) + self.TwitchAPI = TwitchAPI(APP_ID=values["APP_ID"], APP_SECRET=values["APP_SECRET"], res_dir=res_dir) self.TwitchAPI.event_signal.connect(self.shortcut_received) self.twitchApiBtn.setText("Change Twitch API keys") self.TwitchAPI.start()