Skip to content

Commit

Permalink
Moved the assets, models and data to .config/AppData for easier updat…
Browse files Browse the repository at this point in the history
…es and automatized updates in general
  • Loading branch information
Gemmstone committed Mar 21, 2024
1 parent 14f6f9d commit 6149543
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 15 deletions.
5 changes: 3 additions & 2 deletions Core/ShortcutsManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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:
Expand Down
13 changes: 7 additions & 6 deletions Core/imageGallery.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Expand All @@ -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)

Expand All @@ -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:
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion Data/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
12 changes: 6 additions & 6 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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()
Expand Down

0 comments on commit 6149543

Please sign in to comment.