diff options
| author | Harald Sitter <sitter@kde.org> | 2012-06-16 22:45:05 (GMT) |
|---|---|---|
| committer | Harald Sitter <sitter@kde.org> | 2012-06-16 22:45:05 (GMT) |
| commit | edb764d3736d9e2076b2d67b719ad734d76c11ee (patch) | |
| tree | 85b5571387dddec6cf7d0d4a917be7245ba78a08 | |
| parent | 81c9d4d1bd1fa58ab0b89588d3a860e82e9b3d3e (diff) | |
port to liblastfm1 api
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | cmake/modules/FindLibLastFm.cmake | 2 | ||||
| -rw-r--r-- | src/LastfmReadLabelCapability.cpp | 6 | ||||
| -rw-r--r-- | src/context/engines/upcomingevents/UpcomingEventsEngine.cpp | 4 | ||||
| -rw-r--r-- | src/core/support/Amarok.h | 1 | ||||
| -rw-r--r-- | src/services/ampache/LastfmInfoParser.cpp | 12 | ||||
| -rw-r--r-- | src/services/lastfm/LastFmService.cpp | 23 | ||||
| -rw-r--r-- | src/services/lastfm/LastFmServiceCollection.cpp | 52 | ||||
| -rw-r--r-- | src/services/lastfm/LastFmServiceSettings.cpp | 9 | ||||
| -rw-r--r-- | src/services/lastfm/LastFmTreeModel.cpp | 45 | ||||
| -rw-r--r-- | src/services/lastfm/LastFmTreeModel.h | 4 | ||||
| -rw-r--r-- | src/services/lastfm/ScrobblerAdapter.h | 4 | ||||
| -rw-r--r-- | src/services/lastfm/biases/LastFmBias.cpp | 5 | ||||
| -rw-r--r-- | src/services/lastfm/biases/WeeklyTopBias.cpp | 17 | ||||
| -rw-r--r-- | src/services/lastfm/meta/LastFmMeta.cpp | 14 | ||||
| -rw-r--r-- | src/services/lastfm/meta/LastFmMeta.h | 2 | ||||
| -rw-r--r-- | src/services/lastfm/meta/LastFmMeta_p.h | 34 | ||||
| -rw-r--r-- | src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h | 14 |
18 files changed, 122 insertions, 128 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d146c5..31183e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,7 +129,7 @@ if( WITH_PLAYER ) # macro_log_feature( STRIGI_FOUND "strigi" "Index metadata of files" "http://strigi.sourceforge.net" FALSE "" "" ) macro_optional_find_package(LibLastFm) - macro_log_feature( LIBLASTFM_FOUND "liblastfm" "Enable Last.Fm service, including scrobbling, song submissions, and suggested song dynamic playlists" "http://cdn.last.fm/src/liblastfm-0.3.0.tar.bz2" FALSE "0.3" "" ) + macro_log_feature( LIBLASTFM_FOUND "liblastfm" "Enable Last.Fm service, including scrobbling, song submissions, and suggested song dynamic playlists" "http://cdn.last.fm/src/liblastfm-1.0.0.tar.gz" FALSE "1.0.0" "" ) macro_bool_to_01( LIBLASTFM_FOUND HAVE_LIBLASTFM ) macro_optional_find_package( FFmpeg ) diff --git a/cmake/modules/FindLibLastFm.cmake b/cmake/modules/FindLibLastFm.cmake index 1d863b0..95dddb6 100644 --- a/cmake/modules/FindLibLastFm.cmake +++ b/cmake/modules/FindLibLastFm.cmake @@ -6,7 +6,7 @@ # LIBLASTFM_FOUND, whether liblastfm was found -find_path(LIBLASTFM_INCLUDE_DIR NAMES Audioscrobbler +find_path(LIBLASTFM_INCLUDE_DIR NAMES lastfm HINTS ~/usr/include /opt/local/include diff --git a/src/LastfmReadLabelCapability.cpp b/src/LastfmReadLabelCapability.cpp index 385e6b9..d1fb28b 100644 --- a/src/LastfmReadLabelCapability.cpp +++ b/src/LastfmReadLabelCapability.cpp @@ -22,8 +22,7 @@ #include <QMap> #include <QNetworkReply> -#include <lastfm/XmlQuery> -#include <ws.h> +#include <lastfm/XmlQuery.h> #include "core/support/Amarok.h" namespace Capabilities @@ -72,7 +71,8 @@ LastfmReadLabelCapability::onTagsFetched() { case QNetworkReply::NoError: { - lastfm::XmlQuery lfm = m_job->readAll(); + lastfm::XmlQuery lfm; + lfm.parse(m_job->readAll()); QList<lastfm::XmlQuery> tags = lfm.children( "tag" ); QStringList ret; foreach( const lastfm::XmlQuery &child, tags ) diff --git a/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp b/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp index 4ae73d8..689323c 100644 --- a/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp +++ b/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp @@ -27,10 +27,6 @@ #include "EngineController.h" #include "LastFmEventXmlParser.h" -// LastFm -#include <lastfm/XmlQuery> -#include <lastfm/ws.h> - // KDE #include <KDateTime> diff --git a/src/core/support/Amarok.h b/src/core/support/Amarok.h index c985215..d8c91e7 100644 --- a/src/core/support/Amarok.h +++ b/src/core/support/Amarok.h @@ -203,6 +203,7 @@ namespace Amarok inline const char* discogsApiKey() { return "91734dd989"; } inline const char* lastfmApiKey() { return "402d3ca8e9bc9d3cf9b85e1202944ca5"; } + inline const char* lastfmApiSharedSecret() { return "fe0dcde9fcd14c2d1d50665b646335e9"; } inline const char* yahooBossApiKey() { return "oQepTNrV34G9Satb1dgRZ8hdl1uhJvguDSU5Knl2Xd4ALK85knYt6ylr.FTA57XMRBA-"; } inline const char* flickrApiKey() { return "9c5a288116c34c17ecee37877397fe31"; } } diff --git a/src/services/ampache/LastfmInfoParser.cpp b/src/services/ampache/LastfmInfoParser.cpp index 50cb529..0c6dd8f 100644 --- a/src/services/ampache/LastfmInfoParser.cpp +++ b/src/services/ampache/LastfmInfoParser.cpp @@ -20,8 +20,7 @@ #include "core/support/Amarok.h" #include "core/support/Debug.h" -#include <lastfm/XmlQuery> -#include <lastfm/ws.h> +#include <lastfm/XmlQuery.h> #include <KLocale> @@ -55,7 +54,8 @@ void LastfmInfoParser::onGetTrackInfo() { case QNetworkReply::NoError: { - lastfm::XmlQuery lfm = m_jobs[ "getTrackInfo" ]->readAll(); + lastfm::XmlQuery lfm; + lfm.parse( m_jobs[ "getTrackInfo" ]->readAll() ); lastfm::XmlQuery wiki = lfm["track"]["wiki"]; const QString contentText = wiki["content"].text(); const QString publishedDate = wiki["published"].text(); @@ -103,7 +103,8 @@ void LastfmInfoParser::onGetAlbumInfo() { case QNetworkReply::NoError: { - lastfm::XmlQuery lfm = m_jobs[ "getAlbumInfo" ]->readAll(); + lastfm::XmlQuery lfm; + lfm.parse( m_jobs[ "getAlbumInfo" ]->readAll() ); lastfm::XmlQuery wiki = lfm["album"]["wiki"]; const QString summaryText = wiki["summary"].text(); const QString contentText = wiki["content"].text(); @@ -155,7 +156,8 @@ void LastfmInfoParser::onGetArtistInfo() { case QNetworkReply::NoError: { - lastfm::XmlQuery lfm = m_jobs[ "getArtistInfo" ]->readAll(); + lastfm::XmlQuery lfm; + lfm.parse( m_jobs[ "getArtistInfo" ]->readAll() ); debug() << lfm.text(); lastfm::XmlQuery bio = lfm["artist"]["bio"]; const QString summaryText = bio["summary"].text(); diff --git a/src/services/lastfm/LastFmService.cpp b/src/services/lastfm/LastFmService.cpp index a14d989..c9898aa 100644 --- a/src/services/lastfm/LastFmService.cpp +++ b/src/services/lastfm/LastFmService.cpp @@ -46,8 +46,8 @@ #include "widgets/SearchWidget.h" #include "NetworkAccessManagerProxy.h" -#include <lastfm/Audioscrobbler> // from liblastfm -#include <lastfm/XmlQuery> +#include <lastfm/Audioscrobbler.h> // from liblastfm +#include <lastfm/XmlQuery.h> #include <KLocale> #include <KPasswordDialog> @@ -224,10 +224,7 @@ LastFmService::init() { // set the global static Lastfm::Ws stuff lastfm::ws::ApiKey = Amarok::lastfmApiKey(); - lastfm::ws::SharedSecret = "fe0dcde9fcd14c2d1d50665b646335e9"; - // testing w/ official keys - //Ws::SharedSecret = "73582dfc9e556d307aead069af110ab8"; - //Ws::ApiKey = "c8c7b163b11f92ef2d33ba6cd3c2c3c3"; + lastfm::ws::SharedSecret = Amarok::lastfmApiSharedSecret(); m_userNameArray = qstrdup( m_userName.toLatin1().data() ); lastfm::ws::Username = m_userNameArray; if( lastfm::nam() != The::networkAccessManager() ) @@ -309,7 +306,8 @@ LastFmService::onAuthenticated() case QNetworkReply::NoError: { - lastfm::XmlQuery lfm = lastfm::XmlQuery( m_jobs[ "auth" ]->readAll() ); + lastfm::XmlQuery lfm; + lfm.parse( m_jobs[ "auth" ]->readAll() ); LastFmServiceConfig config; if( lfm.children( "error" ).size() > 0 ) @@ -359,10 +357,8 @@ LastFmService::onGetUserInfo() { case QNetworkReply::NoError: { - try - { - lastfm::XmlQuery lfm( m_jobs[ "getUserInfo" ]->readAll() ); - + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "getUserInfo" ]->readAll() ) ) { m_country = lfm["user"]["country"].text(); m_age = lfm["user"]["age"].text(); m_gender = lfm["user"]["gender"].text(); @@ -381,9 +377,10 @@ LastFmService::onGetUserInfo() } updateProfileInfo(); - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } break; } case QNetworkReply::AuthenticationRequiredError: diff --git a/src/services/lastfm/LastFmServiceCollection.cpp b/src/services/lastfm/LastFmServiceCollection.cpp index 22f49ec..0ed5505 100644 --- a/src/services/lastfm/LastFmServiceCollection.cpp +++ b/src/services/lastfm/LastFmServiceCollection.cpp @@ -26,7 +26,7 @@ #include "core-impl/collections/support/MemoryQueryMaker.h" #include <lastfm/ws.h> -#include <lastfm/XmlQuery> +#include <lastfm/XmlQuery.h> #include <QNetworkReply> @@ -154,10 +154,9 @@ void LastFmServiceCollection::slotAddNeighboursLoved() case QNetworkReply::NoError: { // iterate through each neighbour - try + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "user.getNeighbours" ]->readAll() ) ) { - lastfm::XmlQuery lfm( m_jobs[ "user.getNeighbours" ]->readAll() ); - foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children( "user" ) ) { const QString name = e[ "name" ].text(); @@ -168,9 +167,10 @@ void LastFmServiceCollection::slotAddNeighboursLoved() addTrack( trackPtr ); } - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } break; } @@ -195,15 +195,14 @@ void LastFmServiceCollection::slotAddNeighboursPersonal() case QNetworkReply::NoError: { // iterate through each neighbour - try + if( !m_jobs[ "user.getNeighbours" ] ) + { + debug() << "BAD! got no result object"; + return; + } + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "user.getNeighbours" ]->readAll() ) ) { - if( !m_jobs[ "user.getNeighbours" ] ) - { - debug() << "BAD! got no result object"; - return; - } - lastfm::XmlQuery lfm( m_jobs[ "user.getNeighbours" ]->readAll() ); - // iterate through each neighbour foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children( "user" ) ) { @@ -218,9 +217,10 @@ void LastFmServiceCollection::slotAddNeighboursPersonal() // should be safe, as both slots SHOULD get called before we return to the event loop... m_jobs[ "user.getNeighbours" ]->deleteLater(); - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } break; } @@ -248,10 +248,9 @@ void LastFmServiceCollection::slotAddFriendsLoved() { case QNetworkReply::NoError: { - try + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "user.getFriends" ]->readAll() ) ) { - lastfm::XmlQuery lfm( m_jobs[ "user.getFriends" ]->readAll() ); - foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children( "user" ) ) { const QString name = e[ "name" ].text(); @@ -261,9 +260,10 @@ void LastFmServiceCollection::slotAddFriendsLoved() addTrack( trackPtr ); } - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } break; } @@ -293,10 +293,9 @@ void LastFmServiceCollection::slotAddFriendsPersonal() { case QNetworkReply::NoError: { - try + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "user.getFriends" ]->readAll() ) ) { - lastfm::XmlQuery lfm( m_jobs[ "user.getFriends" ]->readAll() ); - foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children( "user" ) ) { const QString name = e[ "name" ].text(); @@ -306,9 +305,10 @@ void LastFmServiceCollection::slotAddFriendsPersonal() addTrack( trackPtr ); } - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } break; } diff --git a/src/services/lastfm/LastFmServiceSettings.cpp b/src/services/lastfm/LastFmServiceSettings.cpp index 2eff71e..9f67559 100644 --- a/src/services/lastfm/LastFmServiceSettings.cpp +++ b/src/services/lastfm/LastFmServiceSettings.cpp @@ -23,9 +23,9 @@ #include "NetworkAccessManagerProxy.h" #include "ui_LastFmConfigWidget.h" -#include <lastfm/Audioscrobbler> // from liblastfm +#include <lastfm/Audioscrobbler.h> // from liblastfm #include <lastfm/ws.h> -#include <lastfm/XmlQuery> +#include <lastfm/XmlQuery.h> #include <QCryptographicHash> #include <QNetworkAccessManager> @@ -100,7 +100,7 @@ LastFmServiceSettings::testLogin() m_configDialog->testLogin->setText( i18n( "Testing..." ) ); // set the global static Lastfm::Ws stuff lastfm::ws::ApiKey = Amarok::lastfmApiKey(); - lastfm::ws::SharedSecret = "fe0dcde9fcd14c2d1d50665b646335e9"; + lastfm::ws::SharedSecret = Amarok::lastfmApiSharedSecret(); lastfm::ws::Username = qstrdup( m_configDialog->kcfg_ScrobblerUsername->text().toLatin1().data() ); if( lastfm::nam() != The::networkAccessManager() ) lastfm::setNetworkAccessManager( The::networkAccessManager() ); @@ -126,7 +126,8 @@ LastFmServiceSettings::onAuthenticated() { DEBUG_BLOCK - lastfm::XmlQuery lfm = lastfm::XmlQuery( m_authQuery->readAll() ); + lastfm::XmlQuery lfm; + lfm.parse( m_authQuery->readAll() ); switch( m_authQuery->error() ) { diff --git a/src/services/lastfm/LastFmTreeModel.cpp b/src/services/lastfm/LastFmTreeModel.cpp index 2d94d67..4d47d42 100644 --- a/src/services/lastfm/LastFmTreeModel.cpp +++ b/src/services/lastfm/LastFmTreeModel.cpp @@ -26,8 +26,8 @@ #include "AmarokMimeData.h" #include <lastfm/ws.h> -#include <lastfm/Tag> -#include <lastfm/XmlQuery> +#include <lastfm/Tag.h> +#include <lastfm/XmlQuery.h> #include <KIcon> #include <KLocale> @@ -68,11 +68,12 @@ LastFmTreeModel::slotAddNeighbors () { DEBUG_BLOCK - try - { // Iterate over each neighbor, in two passes: 1) Get data 2) Sort data, store in model - lastfm::XmlQuery lfm( m_jobs[ "getNeighbours" ]->readAll() ); + lastfm::XmlQuery lfm; + lfm.parse( m_jobs[ "getNeighbours" ]->readAll() ); + if( lfm.parseError().enumValue() == lastfm::ws::NoError ) + { foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children ( "user" ) ) { const QString name = e[ "name" ].text(); @@ -88,11 +89,11 @@ LastFmTreeModel::slotAddNeighbors () appendUserStations( neighbor, name ); } m_neighbors.sort(); + } else { + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); + return; } - catch( lastfm::ws::ParseError e ) - { - debug() << "Got exception in parsing from last.fm:" << e.what(); - } + emitRowChanged(LastFm::Neighbors); m_jobs[ "getNeighbours" ]->deleteLater(); } @@ -102,11 +103,11 @@ LastFmTreeModel::slotAddFriends () { DEBUG_BLOCK - try - { - // Iterate over each friend, in two passes: 1) Get data 2) Sort data, store in model + // Iterate over each friend, in two passes: 1) Get data 2) Sort data, store in model - lastfm::XmlQuery lfm( m_jobs[ "getFriends" ]->readAll() ); + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "getFriends" ]->readAll() ) ) + { foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children ( "user" ) ) { const QString name = e[ "name" ].text(); @@ -123,11 +124,11 @@ LastFmTreeModel::slotAddFriends () appendUserStations( afriend, name ); } m_friends.sort(); + } else { + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); + return; } - catch( lastfm::ws::ParseError e ) - { - debug() << "Got exception in parsing from last.fm:" << e.what(); - } + emitRowChanged(LastFm::Friends); m_jobs[ "getFriends" ]->deleteLater(); } @@ -137,10 +138,9 @@ LastFmTreeModel::slotAddTopArtists () { DEBUG_BLOCK WeightedStringList list; - try + lastfm::XmlQuery lfm; + if( lfm.parse( m_jobs[ "getTopArtists" ]->readAll() ) ) { - lastfm::XmlQuery lfm( m_jobs[ "getTopArtists" ]->readAll() ); - foreach( const lastfm::XmlQuery &e, lfm[ "topartists" ].children ( "artist" ) ) { const QString name = e[ "name" ].text(); @@ -158,9 +158,10 @@ LastFmTreeModel::slotAddTopArtists () m_myTopArtists->appendChild ( artist ); } - } catch( lastfm::ws::ParseError e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } emitRowChanged(LastFm::TopArtists); m_jobs[ "getTopArtists" ]->deleteLater(); diff --git a/src/services/lastfm/LastFmTreeModel.h b/src/services/lastfm/LastFmTreeModel.h index ac171a5..3aa2061 100644 --- a/src/services/lastfm/LastFmTreeModel.h +++ b/src/services/lastfm/LastFmTreeModel.h @@ -22,7 +22,7 @@ #include "core/meta/Meta.h" #include "WeightedStringList.h" -#include <lastfm/User> +#include <lastfm/User.h> #include <QAbstractItemModel> #include <QHash> @@ -136,7 +136,7 @@ private: LastFmTreeItem *m_myTopArtists; QString m_userName; - lastfm::AuthenticatedUser m_user; + lastfm::User m_user; QStringList m_friends; QStringList m_neighbors; diff --git a/src/services/lastfm/ScrobblerAdapter.h b/src/services/lastfm/ScrobblerAdapter.h index 67ed73b..b276837 100644 --- a/src/services/lastfm/ScrobblerAdapter.h +++ b/src/services/lastfm/ScrobblerAdapter.h @@ -20,8 +20,8 @@ #include "core/meta/Meta.h" -#include <lastfm/Audioscrobbler> -#include <lastfm/Track> +#include <lastfm/Audioscrobbler.h> +#include <lastfm/Track.h> #include <QVariant> diff --git a/src/services/lastfm/biases/LastFmBias.cpp b/src/services/lastfm/biases/LastFmBias.cpp index b011b32..52307a4 100644 --- a/src/services/lastfm/biases/LastFmBias.cpp +++ b/src/services/lastfm/biases/LastFmBias.cpp @@ -34,9 +34,8 @@ #include "core/collections/QueryMaker.h" #include "core-impl/collections/support/CollectionManager.h" -#include "lastfm/Artist" -#include "lastfm/ws.h" -#include "lastfm/XmlQuery" +#include <lastfm/Artist.h> +#include <lastfm/ws.h> #include <QLabel> #include <QComboBox> diff --git a/src/services/lastfm/biases/WeeklyTopBias.cpp b/src/services/lastfm/biases/WeeklyTopBias.cpp index df6dd66..2deb9cc 100644 --- a/src/services/lastfm/biases/WeeklyTopBias.cpp +++ b/src/services/lastfm/biases/WeeklyTopBias.cpp @@ -34,9 +34,9 @@ #include "core/collections/QueryMaker.h" #include "core-impl/collections/support/CollectionManager.h" -#include "lastfm/Artist" -#include "lastfm/ws.h" -#include "lastfm/XmlQuery" +#include <lastfm/Artist.h> +#include <lastfm/ws.h> +#include <lastfm/XmlQuery.h> #include <QNetworkReply> @@ -371,10 +371,9 @@ Dynamic::WeeklyTopBias::weeklyArtistQueryFinished() } - try + lastfm::XmlQuery lfm; + if( lfm.parse( reply->readAll() ) ) { - lastfm::XmlQuery lfm( reply->readAll() ); - // debug() << "got response:" << lfm; QStringList artists; for( int i = 0; i < lfm[ "weeklyartistchart" ].children( "artist" ).size(); i++ ) @@ -398,10 +397,10 @@ Dynamic::WeeklyTopBias::weeklyArtistQueryFinished() warning() << "Got a reply for a week"<<week<<"that was not requested."; return; } - - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "caught exception parsing weekly artist chart."; + debug() << "failed to parse weekly artist chart."; } reply->deleteLater(); diff --git a/src/services/lastfm/meta/LastFmMeta.cpp b/src/services/lastfm/meta/LastFmMeta.cpp index d8f5284..220d929 100644 --- a/src/services/lastfm/meta/LastFmMeta.cpp +++ b/src/services/lastfm/meta/LastFmMeta.cpp @@ -41,7 +41,7 @@ #include <QWeakPointer> #include <QUrl> -#include <lastfm/Track> +#include <lastfm/Track.h> namespace LastFm { @@ -451,8 +451,7 @@ Track::love() DEBUG_BLOCK debug() << "info:" << d->lastFmTrack.artist() << d->lastFmTrack.title(); - d->wsReply = lastfm::MutableTrack( d->lastFmTrack ).love(); - connect( d->wsReply, SIGNAL( finished() ), this, SLOT( slotWsReply() ) ); + lastfm::MutableTrack( d->lastFmTrack ).love(); } void @@ -477,9 +476,9 @@ void Track::slotResultReady() { if( d->trackFetch->error() == QNetworkReply::NoError ) { - try + lastfm::XmlQuery lfm; + if( lfm.parse( d->trackFetch->readAll() ) ) { - lastfm::XmlQuery lfm( d->trackFetch->readAll() ); QString id = lfm[ "track" ][ "id" ].text(); QString streamable = lfm[ "track" ][ "streamable" ].text(); if( streamable.toInt() == 1 ) @@ -487,9 +486,10 @@ void Track::slotResultReady() else init(); - } catch( lastfm::ws::ParseError& e ) + } + else { - debug() << "Got exception in parsing from last.fm:" << e.what(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); } } else { diff --git a/src/services/lastfm/meta/LastFmMeta.h b/src/services/lastfm/meta/LastFmMeta.h index f7b93c1..7d64a3f 100644 --- a/src/services/lastfm/meta/LastFmMeta.h +++ b/src/services/lastfm/meta/LastFmMeta.h @@ -24,7 +24,7 @@ #include "ServiceMetaBase.h" // for the SourceInfoProvider -#include <lastfm/Track> +#include <lastfm/Track.h> #include <QObject> diff --git a/src/services/lastfm/meta/LastFmMeta_p.h b/src/services/lastfm/meta/LastFmMeta_p.h index c2d88ac..caf954a 100644 --- a/src/services/lastfm/meta/LastFmMeta_p.h +++ b/src/services/lastfm/meta/LastFmMeta_p.h @@ -26,10 +26,10 @@ #include "core/statistics/StatisticsProvider.h" #include "core-impl/statistics/providers/tag/TagStatisticsProvider.h" -#include <lastfm/Track> +#include <lastfm/Track.h> #include <lastfm/ws.h> -#include <lastfm/RadioTuner> -#include <lastfm/XmlQuery> +#include <lastfm/RadioTuner.h> +#include <lastfm/XmlQuery.h> #include <kio/job.h> #include <kio/jobclasses.h> @@ -144,26 +144,24 @@ class Track::Private : public QObject return; if( m_userFetch->error() == QNetworkReply::NoError ) { - try + lastfm::XmlQuery lfm; + if( !lfm.parse( m_userFetch->readAll() ) ) { - lastfm::XmlQuery lfm( m_userFetch->readAll() ); - albumUrl = lfm[ "track" ][ "album" ][ "url" ].text(); - trackUrl = lfm[ "track" ][ "url" ].text(); - artistUrl = lfm[ "track" ][ "artist" ][ "url" ].text(); - - notifyObservers(); + debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message(); + return; + } + albumUrl = lfm[ "track" ][ "album" ][ "url" ].text(); + trackUrl = lfm[ "track" ][ "url" ].text(); + artistUrl = lfm[ "track" ][ "artist" ][ "url" ].text(); - imageUrl = lfm[ "track" ][ "album" ][ "image size=large" ].text(); + notifyObservers(); - if( !imageUrl.isEmpty() ) - { - KIO::Job* job = KIO::storedGet( KUrl( imageUrl ), KIO::Reload, KIO::HideProgressInfo ); - connect( job, SIGNAL( result( KJob* ) ), this, SLOT( fetchImageFinished( KJob* ) ) ); - } + imageUrl = lfm[ "track" ][ "album" ][ "image size=large" ].text(); - } catch( lastfm::ws::ParseError& e ) + if( !imageUrl.isEmpty() ) { - debug() << "Got exception in parsing from last.fm:" << e.what(); + KIO::Job* job = KIO::storedGet( KUrl( imageUrl ), KIO::Reload, KIO::HideProgressInfo ); + connect( job, SIGNAL( result( KJob* ) ), this, SLOT( fetchImageFinished( KJob* ) ) ); } } diff --git a/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h b/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h index 1c464cc..42a5ff2 100644 --- a/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h +++ b/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h @@ -25,8 +25,9 @@ #include "core/meta/Meta.h" #include "core/capabilities/MultiPlayableCapability.h" -#include <lastfm/Track> -#include <lastfm/RadioTuner> +#include <lastfm/Track.h> +#include <lastfm/RadioStation.h> +#include <lastfm/RadioTuner.h> #include <lastfm/ws.h> #include <KLocale> @@ -57,17 +58,16 @@ class MultiPlayableCapabilityImpl : public Capabilities::MultiPlayableCapability m_tuner = new lastfm::RadioTuner( lastfm::RadioStation( m_track->uidUrl() ) ); connect( m_tuner, SIGNAL( trackAvailable() ), this, SLOT( slotNewTrackAvailable() ) ); - connect( m_tuner, SIGNAL( error( lastfm::ws::Error ) ), this, SLOT( error( lastfm::ws::Error ) ) ); + connect( m_tuner, SIGNAL( error(lastfm::ws::Error,QString) ), this, SLOT( error( lastfm::ws::Error ) ) ); } - + virtual void fetchNext() { DEBUG_BLOCK m_currentTrack = m_tuner->takeNextTrack(); m_track->setTrackInfo( m_currentTrack ); - } - + using Observer::metadataChanged; virtual void metadataChanged( Meta::TrackPtr track ) { @@ -94,7 +94,7 @@ class MultiPlayableCapabilityImpl : public Capabilities::MultiPlayableCapability m_track->setTrackInfo( m_currentTrack ); } } - + virtual void skip() { fetchNext(); |
