def installKDE4Languages(): if uni.isAvailableKDE4(): for langCode in uni.getInstalledLanguagesCodes(): installKDE4Language(langCode) uni.setMySetting("isInstalledKDE4Language", True) return True return False
def checkAmarok(_isAlertIfNotAvailable=True, _isUseReadOnly=True): global isAskEmbeddedDBConfiguration if isLoadedMysql and uni.isAvailableKDE4(): if uni.getBoolValue("amarokIsUseHost"): if _isUseReadOnly or uni.getBoolValue( "isReadOnlyAmarokDBHost") is False: return True else: if _isAlertIfNotAvailable: answer = Dialogs.ask( translate("Amarok", "This Feature Is Not Usable"), translate( "Amarok", "This feature is not usable with read only Amarok database. <br>Are you want to give permission to read and write for Amarok database?" )) if answer == Dialogs.Yes: uni.setMySetting("isReadOnlyAmarokDBHost", False) return True else: isAskEmbeddedDBConfiguration = True return checkEmbeddedDB() else: if _isAlertIfNotAvailable: Dialogs.showError( translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please run Amarok once.")) return False return False
def installKDE4Language(_language="tr_TR"): if uni.isAvailableKDE4(): KDELocalateDir = fu.joinPath(uni.getKDE4HomePath(), "share", "locale", str(_language[:2]), "LC_MESSAGES") if uni.isRunningAsRoot(): KDELocalateDir = fu.joinPath("/usr", "share", "locale", str(_language[:2]), "LC_MESSAGES") KDELocalateDir = str(KDELocalateDir) langFile = fu.joinPath(fu.HamsiManagerDirectory, "Languages", "DontTranslate", str(_language), "HamsiManager.mo") if fu.isFile(fu.joinPath(KDELocalateDir, "HamsiManager.mo")) is False: if fu.isFile(langFile): if fu.isDir(KDELocalateDir) is False: fu.makeDirs(KDELocalateDir) fu.copyFileOrDir(langFile, fu.joinPath(KDELocalateDir, "HamsiManager.mo")) return True return False
def checkAmarok(_isAlertIfNotAvailable=True, _isUseReadOnly=True): global isAskEmbeddedDBConfiguration if isLoadedMysql and uni.isAvailableKDE4(): if uni.getBoolValue("amarokIsUseHost"): if _isUseReadOnly or uni.getBoolValue("isReadOnlyAmarokDBHost") is False: return True else: if _isAlertIfNotAvailable: answer = Dialogs.ask(translate("Amarok", "This Feature Is Not Usable"), translate("Amarok", "This feature is not usable with read only Amarok database. <br>Are you want to give permission to read and write for Amarok database?")) if answer == Dialogs.Yes: uni.setMySetting("isReadOnlyAmarokDBHost", False) return True else: isAskEmbeddedDBConfiguration = True return checkEmbeddedDB() else: if _isAlertIfNotAvailable: Dialogs.showError(translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please run Amarok once.")) return False return False
def isInstallable(): return uni.isAvailableKDE4()
def checkAndGetDB(_isNoAlertIfSuccessfully=True, _isReCheck=False): global isCheckAgain if _isReCheck: isCheckAgain = True if checkAmarok(): try: db = connectAndGetDB() if db is not None: if isCheckAgain: db.query( "SELECT version FROM admin WHERE component='DB_VERSION'" ) rows = db.store_result().fetch_row(1) dbVersion = int(rows[0][0]) if dbVersion not in availableDBVersions: answer = Dialogs.ask( translate("Amarok", "Your Amarok DB Version Is Not Tested"), str( translate( "Amarok", "Your Amarok DB version is not tested. We don`t suggest but you can use at your own risk. Are you sure you want to use?" "<br>Your Amarok DB Version:%s" "<br>Tested Amarok DB Versions:%s")) % (str(dbVersion), str(availableDBVersions))) if answer is not Dialogs.Yes: return None if _isNoAlertIfSuccessfully is False: Dialogs.show( translate("Amarok", "Connected To Database"), str( translate("Amarok", "Connected successfully to \"%s\"")) % uni.MySettings["amarokDBDB"]) isCheckAgain = False return db else: Dialogs.showError( translate("Amarok", "Amarok Database Is Not Usable"), translate("Amarok", "Amarok database is not accessible.")) return None except: cla, currentError, trbk = sys.exc_info() if str(currentError).find("Unknown MySQL server host") != -1: Dialogs.showError( translate("Amarok", "Not Connected To Database"), str( translate( "Amarok", "Unknown MySQL server host \"%s\" <br><b>Details</b> : %s" )) % (uni.MySettings["amarokDBHost"], str(currentError))) elif str(currentError).find("Access denied for user") != -1: Dialogs.showError( translate("Amarok", "Not Connected To Database"), str( translate( "Amarok", "Access denied for user \"%s\" <br><b>Details</b> : %s" )) % (uni.MySettings["amarokDBUser"], str(currentError))) elif str(currentError).find("Unknown database") != -1: Dialogs.showError( translate("Amarok", "Not Connected To Database"), str( translate( "Amarok", "Unknown database \"%s\" <br><b>Details</b> : %s")) % (uni.MySettings["amarokDBDB"], str(currentError))) elif str(currentError).find( "Can't connect to local MySQL server through socket" ) != -1: Dialogs.showError( translate("Amarok", "Not Connected To Database"), str( translate( "Amarok", "Can't connect to local MySQL server through socket \"%s\" <br><b>Details</b> : %s" )) % (str(currentError).replace( "(2002, \"Can't connect to local MySQL server through socket '", "").replace("' (2)\")", ""), str(currentError))) else: ReportBug.ReportBug() return None else: if isLoadedMysql is False: Dialogs.showError( translate("Amarok", "Amarok Module Is Not Usable"), translate( "Amarok", "\"python-mysql\" (MySQLdb / _mysql) named module is not installed on your system. Please install this module and try again." )) elif uni.isAvailableKDE4() is False: Dialogs.showError( translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please open user session with KDE4 once.")) else: Dialogs.showError( translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please run Amarok once.")) return None
fu.writeToFile(fu.joinPath(fu.getTempDir(), "HamsiManagerHasBeenBuilt"), str(sys.argv) + "\nPlease, don't remove this file.") include_files.append((os.path.join(fu.getTempDir(), "HamsiManagerHasBeenBuilt"), "HamsiManagerHasBeenBuilt")) data_files = [] if os.name == "posix": from Core import MyConfigure installationDirectory = fu.joinPath("/", "usr", "lib", "HamsiManager-" + uni.version) fileContent = MyConfigure.getConfiguredDesktopFileContent(installationDirectory, "/usr/bin/hamsi") fu.writeToFile(fu.joinPath(fu.getTempDir(), "HamsiManager.desktop"), fileContent) data_files.append( (fu.joinPath("/", "usr", "share", "applications"), [fu.joinPath(fu.getTempDir(), "HamsiManager.desktop")])) if uni.isAvailableKDE4(): for langCode in uni.getInstalledLanguagesCodes(): KDELocalateDir = fu.joinPath("/", "usr", "share", "locale", str(langCode[:2]), "LC_MESSAGES") langFile = fu.joinPath(fu.HamsiManagerDirectory, "Languages", "DontTranslate", str(langCode), "HamsiManager.mo") if fu.isFile(langFile): data_files.append((KDELocalateDir, [langFile])) data_files.append((fu.joinPath("/", "usr", "share", "icons"), [fu.joinPath(HamsiManagerDirectory, "Themes", "Default", "Images", "hamsi.png")])) data_files.append((fu.joinPath("/", "usr", "share", "pixmaps"), [fu.joinPath(HamsiManagerDirectory, "Themes", "Default", "Images", "hamsi.png")])) packages = ["Amarok", "Core", "Databases", "Details", "FileUtils", "Languages", "MyPlugins", "Options", "SearchEngines", "SpecialTools", "Tables", "Taggers", "Tools", "Viewers", "Bars", "hashlib", "tarfile", "urllib", "PyQt4",
def checkAndGetDB(_isNoAlertIfSuccessfully=True, _isReCheck=False): global isCheckAgain if _isReCheck: isCheckAgain = True if checkAmarok(): try: db = connectAndGetDB() if db is not None: if isCheckAgain: db.query("SELECT version FROM admin WHERE component='DB_VERSION'") rows = db.store_result().fetch_row(1) dbVersion = int(rows[0][0]) if dbVersion not in availableDBVersions: answer = Dialogs.ask(translate("Amarok", "Your Amarok DB Version Is Not Tested"), str(translate("Amarok", "Your Amarok DB version is not tested. We don`t suggest but you can use at your own risk. Are you sure you want to use?" "<br>Your Amarok DB Version:%s" "<br>Tested Amarok DB Versions:%s")) % (str(dbVersion), str( availableDBVersions))) if answer is not Dialogs.Yes: return None if _isNoAlertIfSuccessfully is False: Dialogs.show(translate("Amarok", "Connected To Database"), str(translate("Amarok", "Connected successfully to \"%s\"")) % uni.MySettings[ "amarokDBDB"]) isCheckAgain = False return db else: Dialogs.showError(translate("Amarok", "Amarok Database Is Not Usable"), translate("Amarok", "Amarok database is not accessible.")) return None except: cla, currentError, trbk = sys.exc_info() if str(currentError).find("Unknown MySQL server host") != -1: Dialogs.showError(translate("Amarok", "Not Connected To Database"), str( translate("Amarok", "Unknown MySQL server host \"%s\" <br><b>Details</b> : %s")) % ( uni.MySettings["amarokDBHost"], str(currentError))) elif str(currentError).find("Access denied for user") != -1: Dialogs.showError(translate("Amarok", "Not Connected To Database"), str(translate("Amarok", "Access denied for user \"%s\" <br><b>Details</b> : %s")) % ( uni.MySettings["amarokDBUser"], str(currentError))) elif str(currentError).find("Unknown database") != -1: Dialogs.showError(translate("Amarok", "Not Connected To Database"), str(translate("Amarok", "Unknown database \"%s\" <br><b>Details</b> : %s")) % ( uni.MySettings["amarokDBDB"], str(currentError))) elif str(currentError).find("Can't connect to local MySQL server through socket") != -1: Dialogs.showError(translate("Amarok", "Not Connected To Database"), str(translate("Amarok", "Can't connect to local MySQL server through socket \"%s\" <br><b>Details</b> : %s")) % ( str(currentError).replace( "(2002, \"Can't connect to local MySQL server through socket '", "").replace("' (2)\")", ""), str(currentError))) else: ReportBug.ReportBug() return None else: if isLoadedMysql is False: Dialogs.showError(translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "\"python-mysql\" (MySQLdb / _mysql) named module is not installed on your system. Please install this module and try again.")) elif uni.isAvailableKDE4() is False: Dialogs.showError(translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please open user session with KDE4 once.")) else: Dialogs.showError(translate("Amarok", "Amarok Module Is Not Usable"), translate("Amarok", "Please run Amarok once.")) return None