1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-21 08:19:42 +01:00

Move result parsing in qtscriptresolver to a method

This commit is contained in:
Dominik Schmidt 2011-08-14 14:31:49 +02:00
parent e7aa846a0f
commit 9b7db84a9e
2 changed files with 21 additions and 5 deletions

View File

@ -244,22 +244,36 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
.arg( query->fullTextQuery().replace( "'", "\\'" ) );
}
QList< Tomahawk::result_ptr > results;
QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( eval ).toMap();
qDebug() << "JavaScript Result:" << m;
const QString qid = query->id();
const QVariantList reslist = m.value( "results" ).toList();
QList< Tomahawk::result_ptr > results = parseResultVariantList( reslist );
Tomahawk::Pipeline::instance()->reportResults( qid, results );
}
QList< Tomahawk::result_ptr >
QtScriptResolver::parseResultVariantList( const QVariantList& reslist )
{
QList< Tomahawk::result_ptr > results;
foreach( const QVariant& rv, reslist )
{
QVariantMap m = rv.toMap();
qDebug() << "artist: " << m.value("artist").toString();
qDebug() << "track: " << m.value( "track" ).toString();
//Q_ASSERT(false);
Tomahawk::result_ptr rp( new Tomahawk::Result() );
Tomahawk::artist_ptr ap = Tomahawk::Artist::get( 0, m.value( "artist" ).toString() );
Tomahawk::artist_ptr ap = Tomahawk::Artist::get( m.value( "artist" ).toString(), true );
rp->setArtist( ap );
rp->setAlbum( Tomahawk::Album::get( 0, m.value( "album" ).toString(), ap ) );
rp->setAlbum( Tomahawk::Album::get( ap, m.value( "album" ).toString(), true ) );
rp->setTrack( m.value( "track" ).toString() );
rp->setBitrate( m.value( "bitrate" ).toUInt() );
rp->setUrl( m.value( "url" ).toString() );
@ -292,7 +306,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
results << rp;
}
Tomahawk::Pipeline::instance()->reportResults( qid, results );
return results;
}

View File

@ -133,6 +133,8 @@ private:
QVariantMap resolverUserConfig();
QVariantMap resolverInit();
QList< Tomahawk::result_ptr > parseResultVariantList( const QVariantList& reslist );
ScriptEngine* m_engine;
QString m_name;