示例#1
0
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();
}
示例#2
0
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*)) );
}