1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-04 13:17:34 +02: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( "'", "\\'" ) ); .arg( query->fullTextQuery().replace( "'", "\\'" ) );
} }
QList< Tomahawk::result_ptr > results;
QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( eval ).toMap(); QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( eval ).toMap();
qDebug() << "JavaScript Result:" << m; qDebug() << "JavaScript Result:" << m;
const QString qid = query->id(); const QString qid = query->id();
const QVariantList reslist = m.value( "results" ).toList(); 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 ) foreach( const QVariant& rv, reslist )
{ {
QVariantMap m = rv.toMap(); 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::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->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->setTrack( m.value( "track" ).toString() );
rp->setBitrate( m.value( "bitrate" ).toUInt() ); rp->setBitrate( m.value( "bitrate" ).toUInt() );
rp->setUrl( m.value( "url" ).toString() ); rp->setUrl( m.value( "url" ).toString() );
@@ -292,7 +306,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
results << rp; results << rp;
} }
Tomahawk::Pipeline::instance()->reportResults( qid, results ); return results;
} }

View File

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