void UpdateDialog::updateVersionIndex() { QString versionsDir = settings->getVersionsDir(); QString versionFilePrefix = versionsDir + "/" + clientVersion + "/"; QString versionUrlPrefix = settings->getVersionUrl(clientVersion); QUrl versionUrl(versionUrlPrefix + clientVersion + ".json"); QString versionFile = versionFilePrefix + clientVersion + ".json"; QUrl dataUrl(versionUrlPrefix + "data.json"); QString dataFile = versionFilePrefix + "data.json"; log( tr("Requesting actual version indexes...") ); indexFetcher.add(versionUrl, versionFile); indexFetcher.add(dataUrl, dataFile); indexFetcher.fetchFiles(); }
void ScriptUpdater::updateScript() { DEBUG_BLOCK // 1a. detect currently installed version QFileInfo info( m_scriptPath ); const QString specPath = info.path() + '/' + "script.spec"; if( !QFile::exists( specPath ) ) { // no .spec file found, can't continue emit finished( m_scriptPath ); return; } KPluginInfo pInfo( specPath ); if ( !pInfo.isValid() || pInfo.name().isEmpty() || pInfo.version().isEmpty() ) { // invalid or unusable .spec file, can't continue emit finished( m_scriptPath ); return; } m_scriptversion = pInfo.version(); // 1b. detect script name QFile file( m_scriptPath ); m_fileName = file.fileName(); QRegExp rxname( "amarok/scripts/(.+)/main.js" ); rxname.indexIn( m_fileName ); m_scriptname = rxname.cap( 1 ); // 2. check if there are updates: get 'version' file from server KUrl versionUrl( updateBaseUrl ); versionUrl.addPath( m_scriptname ); versionUrl.addPath( '/' + versionFilename ); m_versionFile.open(); debug() << m_scriptname << ": Accessing " << versionUrl.prettyUrl() << " ..."; KUrl versionDest( m_versionFile.fileName() ); KIO::FileCopyJob *versionJob = KIO::file_copy( versionUrl, versionDest, -1, KIO::Overwrite | KIO::HideProgressInfo ); connect ( versionJob, SIGNAL(result(KJob*)), this, SLOT(phase2(KJob*)) ); }