def updateDefaultDirectory(self): for directory in [Config.DEFAULT_FILE_DIRECTORY, Config.APPDATA_PATH]: try: OSUtils.createDirectory(self.getDefaultDirectory()) break except: self.setDefaultDirectory(directory)
def save(self): try: OSUtils.createDirectory(Config.DB_ROOT) with open(Config.DB_FILE, "w", encoding="utf-8") as file: JsonDatabase.dump(DatabaseLoader.unpack(self.__dict__), file, cls=DatabaseEncoder) except: return False else: return True
def updateConfig(self): try: response = requests.get( OSUtils.joinUrl(Config.SERVER_URL, "config.json")) except: raise Exceptions.ConnectionFailure if response.status_code == 200: try: from Core.Config import Config as CoreConfig from Services.Utils.Image.Config import Config as ImageLoaderConfig from Services.Account.Config import Config as AuthConfig from Services.Ad.Config import Config as AdConfig from Services.Translator.Config import Config as TranslatorConfig from Services.Temp.Config import Config as TempConfig from Services.Twitch.Gql.TwitchGqlConfig import Config as GqlConfig from Services.Twitch.Playback.TwitchPlaybackConfig import Config as PlaybackConfig from Search.Config import Config as SearchConfig from Search.Helper.Config import Config as SearchHelperConfig from Download.Downloader.Engine.Config import Config as DownloadEngineConfig from Download.Downloader.FFmpeg.Config import Config as FFmpegConfig from Download.Downloader.Task.Config import Config as TaskConfig CONFIG_FILES = { "": CoreConfig, "IMAGE_LOADER": ImageLoaderConfig, "AUTH": AuthConfig, "AD": AdConfig, "TRANSLATOR": TranslatorConfig, "TEMP": TempConfig, "API": GqlConfig, "PLAYBACK": PlaybackConfig, "SEARCH": SearchConfig, "SEARCH_HELPER": SearchHelperConfig, "DOWNLOAD_ENGINE": DownloadEngineConfig, "FFMPEG": FFmpegConfig, "TASK": TaskConfig } data = response.json() configData = data.get("global") configData.update( data.get("local").get(Translator.getLanguage())) for key, value in configData.items(): if ":" in key: configTarget, configPath = key.split(":", 1) configTarget = CONFIG_FILES[configTarget] else: configPath = key configTarget = CONFIG_FILES[""] configPath = configPath.split(".") for target in configPath[:-1]: configTarget = getattr(configTarget, target) setattr(configTarget, configPath[-1], value) except: raise Exceptions.UpdateRequired else: raise Exceptions.ConnectionFailure
def cleanTempDirKeyFile(self, tempDirKeyFile): if OSUtils.isFile(tempDirKeyFile): with open(tempDirKeyFile) as file: tempDir = file.read() if OSUtils.isDirectory(tempDir): OSUtils.removeDirectory(tempDir) OSUtils.removeFile(tempDirKeyFile)
def updateRestrictions(self): try: response = requests.get( OSUtils.joinUrl(Config.SERVER_URL, "restrictions.json")) except: raise Exceptions.ConnectionFailure if response.status_code == 200: try: data = response.json() ContentManager.setRestrictions(data) except: raise Exceptions.UpdateRequired else: raise Exceptions.ConnectionFailure
def load(self): language = self.getLanguage() path = QtCore.QLibraryInfo.location( QtCore.QLibraryInfo.TranslationsPath) for fileName in ["qtbase_{}"]: QtTranslator = QtCore.QTranslator() QtTranslator.load(fileName.format(language), path) self.translators.append(QtTranslator) QtCore.QCoreApplication.installTranslator(QtTranslator) path = OSUtils.joinPath(Config.TRANSLATORS_PATH, language) for translation in Config.TRANSLATION_LIST: UiTranslator = QtCore.QTranslator() UiTranslator.load(translation, path) self.translators.append(UiTranslator) QtCore.QCoreApplication.installTranslator(UiTranslator)
def updateStatus(self): try: response = requests.get( OSUtils.joinUrl(Config.SERVER_URL, "status.json")) except: raise Exceptions.ConnectionFailure if response.status_code == 200: try: data = response.json() self.status.syncData(data) except: raise Exceptions.UpdateRequired if self.status.operational: if self.status.version.latestVersion != Config.VERSION: if self.status.version.updateRequired: raise Exceptions.UpdateRequired else: raise Exceptions.UpdateFound else: raise Exceptions.Unavailable else: raise Exceptions.ConnectionFailure
def CleanUnknownVersion(data): try: OSUtils.removeDirectory(OSUtils.joinPath(os.getenv("TEMP"), Config.APP_NAME)) except: pass return data
def __init__(self): try: OSUtils.createDirectory(Config.TEMP_LIST_DIRECTORY) self.cleanup() except: pass
def cleanup(self): self.directory.cleanup() self.file.close() OSUtils.removeFile(self.file.name)
def __enter__(self): self.driver = WebDriverLoader.WebDriverLoader( OSUtils.joinPath(CoreConfig.APPDATA_PATH, "webdrivers")).getAvailableDriver() atexit.register(self.tryExit) return self.driver