From 9b7db84a9e3d2091214c6e936dbf25b3b5c9311c Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Sun, 14 Aug 2011 14:31:49 +0200 Subject: [PATCH] Move result parsing in qtscriptresolver to a method --- src/resolvers/qtscriptresolver.cpp | 24 +++++++++++++++++++----- src/resolvers/qtscriptresolver.h | 2 ++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/resolvers/qtscriptresolver.cpp b/src/resolvers/qtscriptresolver.cpp index 93ed3aa99..3efff6a8d 100644 --- a/src/resolvers/qtscriptresolver.cpp +++ b/src/resolvers/qtscriptresolver.cpp @@ -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; } diff --git a/src/resolvers/qtscriptresolver.h b/src/resolvers/qtscriptresolver.h index e994e98e9..273830a3a 100644 --- a/src/resolvers/qtscriptresolver.h +++ b/src/resolvers/qtscriptresolver.h @@ -133,6 +133,8 @@ private: QVariantMap resolverUserConfig(); QVariantMap resolverInit(); + QList< Tomahawk::result_ptr > parseResultVariantList( const QVariantList& reslist ); + ScriptEngine* m_engine; QString m_name;