diff options
Diffstat (limited to 'source/kde/patch/amarok/amarok-liblastfm1.patch')
-rw-r--r-- | source/kde/patch/amarok/amarok-liblastfm1.patch | 704 |
1 files changed, 704 insertions, 0 deletions
diff --git a/source/kde/patch/amarok/amarok-liblastfm1.patch b/source/kde/patch/amarok/amarok-liblastfm1.patch new file mode 100644 index 00000000..43499312 --- /dev/null +++ b/source/kde/patch/amarok/amarok-liblastfm1.patch @@ -0,0 +1,704 @@ +diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/CMakeLists.txt amarok-2.5.96/CMakeLists.txt +--- amarok-2.5.96.orig/CMakeLists.txt 2012-07-31 12:17:20.000000000 +0200 ++++ amarok-2.5.96/CMakeLists.txt 2012-08-02 16:34:08.465503197 +0200 +@@ -129,7 +129,7 @@ + # 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 "" "version 0.3.x (versions 1.0 or higher are incompatible)" ) ++ 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/cmake/modules/FindLibLastFm.cmake amarok-2.5.96/cmake/modules/FindLibLastFm.cmake +--- amarok-2.5.96.orig/cmake/modules/FindLibLastFm.cmake 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/cmake/modules/FindLibLastFm.cmake 2012-08-02 16:32:36.418653940 +0200 +@@ -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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/LastfmReadLabelCapability.cpp amarok-2.5.96/src/LastfmReadLabelCapability.cpp +--- amarok-2.5.96.orig/src/LastfmReadLabelCapability.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/LastfmReadLabelCapability.cpp 2012-08-02 16:32:36.419653927 +0200 +@@ -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 @@ + { + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp amarok-2.5.96/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp +--- amarok-2.5.96.orig/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp 2012-08-02 16:32:35.962659642 +0200 +@@ -27,10 +27,6 @@ + #include "EngineController.h" + #include "LastFmEventXmlParser.h" + +-// LastFm +-#include <lastfm/XmlQuery> +-#include <lastfm/ws.h> +- + // KDE + #include <KDateTime> + +diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/core/support/Amarok.h amarok-2.5.96/src/core/support/Amarok.h +--- amarok-2.5.96.orig/src/core/support/Amarok.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/core/support/Amarok.h 2012-08-02 16:32:35.962659642 +0200 +@@ -203,6 +203,7 @@ + + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/ampache/LastfmInfoParser.cpp amarok-2.5.96/src/services/ampache/LastfmInfoParser.cpp +--- amarok-2.5.96.orig/src/services/ampache/LastfmInfoParser.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/ampache/LastfmInfoParser.cpp 2012-08-02 16:32:35.954659742 +0200 +@@ -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 @@ + { + 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 @@ + { + 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 @@ + { + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmService.cpp amarok-2.5.96/src/services/lastfm/LastFmService.cpp +--- amarok-2.5.96.orig/src/services/lastfm/LastFmService.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/LastFmService.cpp 2012-08-02 16:32:35.955659729 +0200 +@@ -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 @@ + { + // 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 @@ + 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 @@ + { + 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 @@ + } + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceCollection.cpp amarok-2.5.96/src/services/lastfm/LastFmServiceCollection.cpp +--- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceCollection.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/LastFmServiceCollection.cpp 2012-08-02 16:32:35.956659716 +0200 +@@ -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 @@ + 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 @@ + 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 @@ + 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 @@ + + // 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 @@ + { + 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 @@ + 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 @@ + { + 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 @@ + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceSettings.cpp amarok-2.5.96/src/services/lastfm/LastFmServiceSettings.cpp +--- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceSettings.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/LastFmServiceSettings.cpp 2012-08-02 16:32:35.957659703 +0200 +@@ -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 @@ + 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 @@ + { + DEBUG_BLOCK + +- lastfm::XmlQuery lfm = lastfm::XmlQuery( m_authQuery->readAll() ); ++ lastfm::XmlQuery lfm; ++ lfm.parse( m_authQuery->readAll() ); + + switch( m_authQuery->error() ) + { +diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.cpp amarok-2.5.96/src/services/lastfm/LastFmTreeModel.cpp +--- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/LastFmTreeModel.cpp 2012-08-02 16:32:35.958659691 +0200 +@@ -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 @@ + { + 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 @@ + 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 @@ + { + 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 @@ + 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 @@ + { + 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 @@ + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.h amarok-2.5.96/src/services/lastfm/LastFmTreeModel.h +--- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/LastFmTreeModel.h 2012-08-02 16:32:35.957659703 +0200 +@@ -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 @@ + LastFmTreeItem *m_myTopArtists; + + QString m_userName; +- lastfm::AuthenticatedUser m_user; ++ lastfm::User m_user; + + QStringList m_friends; + QStringList m_neighbors; +diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/ScrobblerAdapter.h amarok-2.5.96/src/services/lastfm/ScrobblerAdapter.h +--- amarok-2.5.96.orig/src/services/lastfm/ScrobblerAdapter.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/ScrobblerAdapter.h 2012-08-02 16:32:35.958659691 +0200 +@@ -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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/biases/LastFmBias.cpp amarok-2.5.96/src/services/lastfm/biases/LastFmBias.cpp +--- amarok-2.5.96.orig/src/services/lastfm/biases/LastFmBias.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/biases/LastFmBias.cpp 2012-08-02 16:32:35.958659691 +0200 +@@ -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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/biases/WeeklyTopBias.cpp amarok-2.5.96/src/services/lastfm/biases/WeeklyTopBias.cpp +--- amarok-2.5.96.orig/src/services/lastfm/biases/WeeklyTopBias.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/biases/WeeklyTopBias.cpp 2012-08-02 16:32:35.960659667 +0200 +@@ -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 @@ + } + + +- 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 @@ + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.cpp amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.cpp +--- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.cpp 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.cpp 2012-08-02 16:32:35.961659655 +0200 +@@ -41,7 +41,7 @@ + #include <QWeakPointer> + #include <QUrl> + +-#include <lastfm/Track> ++#include <lastfm/Track.h> + + namespace LastFm { + +@@ -451,8 +451,7 @@ + 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 @@ + { + 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 @@ + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.h amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.h +--- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.h 2012-08-02 16:32:35.960659667 +0200 +@@ -24,7 +24,7 @@ + #include "ServiceMetaBase.h" // for the SourceInfoProvider + + +-#include <lastfm/Track> ++#include <lastfm/Track.h> + + + #include <QObject> +diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta_p.h amarok-2.5.96/src/services/lastfm/meta/LastFmMeta_p.h +--- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta_p.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta_p.h 2012-08-02 16:32:35.961659655 +0200 +@@ -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 @@ + 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 -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h amarok-2.5.96/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h +--- amarok-2.5.96.orig/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h 2012-07-31 12:10:56.000000000 +0200 ++++ amarok-2.5.96/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h 2012-08-02 16:32:35.962659642 +0200 +@@ -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> +@@ -55,24 +56,23 @@ + { + DEBUG_BLOCK + 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 ) + { + const LastFm::TrackPtr ltrack = LastFm::TrackPtr::dynamicCast( track ); +- ++ + if( ltrack.isNull() ) + return; + +@@ -94,7 +94,7 @@ + m_track->setTrackInfo( m_currentTrack ); + } + } +- ++ + virtual void skip() + { + fetchNext(); |