From 4ffbd839ebd8f78c7abbd9fc777f2faa83dd4621 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Fri, 28 Oct 2011 12:08:02 -0400 Subject: [PATCH] Actually use cache in musicbrainz plugin. We were caching the data but not fetching from the cache --- .../infoplugins/generic/musicbrainzPlugin.cpp | 40 +++++++++++++++++-- .../infoplugins/generic/musicbrainzPlugin.h | 6 +-- .../infoplugins/generic/spotifyPlugin.cpp | 3 ++ .../infosystem/infosystemworker.cpp | 2 +- 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.cpp b/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.cpp index c5659f27f..8c0b3c2f4 100644 --- a/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.cpp @@ -50,7 +50,6 @@ MusicBrainzPlugin::namChangedSlot( QNetworkAccessManager *nam ) m_nam = QWeakPointer< QNetworkAccessManager >( nam ); } - void MusicBrainzPlugin::getInfo( Tomahawk::InfoSystem::InfoRequestData requestData ) { @@ -66,13 +65,48 @@ MusicBrainzPlugin::getInfo( Tomahawk::InfoSystem::InfoRequestData requestData ) return; } + switch ( requestData.type ) + { + case InfoArtistReleases: + { + + Tomahawk::InfoSystem::InfoStringHash criteria; + criteria["artist"] = hash["artist"]; + + emit getCachedInfo( criteria, 2419200000, requestData ); + break; + } + + case InfoAlbumSongs: + { + + Tomahawk::InfoSystem::InfoStringHash criteria; + criteria["artist"] = hash["artist"]; + criteria["album"] = hash["album"]; + + emit getCachedInfo( criteria, 2419200000, requestData ); + + break; + } + + default: + { + Q_ASSERT( false ); + break; + } + } +} + +void +MusicBrainzPlugin::notInCacheSlot( InfoStringHash criteria, InfoRequestData requestData ) +{ switch ( requestData.type ) { case InfoArtistReleases: { QString requestString( "http://musicbrainz.org/ws/2/artist" ); QUrl url( requestString ); - url.addQueryItem( "query", hash["artist"] ); + url.addQueryItem( "query", criteria["artist"] ); QNetworkReply* reply = m_nam.data()->get( QNetworkRequest( url ) ); reply->setProperty( "requestData", QVariant::fromValue< Tomahawk::InfoSystem::InfoRequestData >( requestData ) ); @@ -84,7 +118,7 @@ MusicBrainzPlugin::getInfo( Tomahawk::InfoSystem::InfoRequestData requestData ) { QString requestString( "http://musicbrainz.org/ws/2/artist" ); QUrl url( requestString ); - url.addQueryItem( "query", hash["artist"] ); + url.addQueryItem( "query", criteria["artist"] ); QNetworkReply* reply = m_nam.data()->get( QNetworkRequest( url ) ); reply->setProperty( "requestData", QVariant::fromValue< Tomahawk::InfoSystem::InfoRequestData >( requestData ) ); diff --git a/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.h b/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.h index 77637e37b..444b30809 100644 --- a/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.h +++ b/src/libtomahawk/infosystem/infoplugins/generic/musicbrainzPlugin.h @@ -43,6 +43,7 @@ public slots: protected slots: virtual void getInfo( Tomahawk::InfoSystem::InfoRequestData requestData ); + virtual void notInCacheSlot( InfoStringHash criteria, InfoRequestData requestData ); virtual void pushInfo( QString caller, Tomahawk::InfoSystem::InfoType type, QVariant data ) { @@ -51,11 +52,6 @@ protected slots: Q_UNUSED( data ); } -virtual void notInCacheSlot( Tomahawk::InfoSystem::InfoStringHash criteria, Tomahawk::InfoSystem::InfoRequestData requestData ) - { - Q_UNUSED( criteria ); - Q_UNUSED( requestData ); - } private slots: void artistSearchSlot(); diff --git a/src/libtomahawk/infosystem/infoplugins/generic/spotifyPlugin.cpp b/src/libtomahawk/infosystem/infoplugins/generic/spotifyPlugin.cpp index e05d739b6..1fba1d266 100644 --- a/src/libtomahawk/infosystem/infoplugins/generic/spotifyPlugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/generic/spotifyPlugin.cpp @@ -267,6 +267,9 @@ SpotifyPlugin::chartTypes() } + QVariantMap defaultMap; + defaultMap[ "Spotify" ] = QStringList() << "United States" << "Top Albums"; + m_allChartsMap[ "defaults" ] = defaultMap; m_allChartsMap.insert( "Spotify", QVariant::fromValue( charts ) ); } diff --git a/src/libtomahawk/infosystem/infosystemworker.cpp b/src/libtomahawk/infosystem/infosystemworker.cpp index 95cf8e63b..406fa1f01 100644 --- a/src/libtomahawk/infosystem/infosystemworker.cpp +++ b/src/libtomahawk/infosystem/infosystemworker.cpp @@ -198,7 +198,7 @@ InfoSystemWorker::getInfo( Tomahawk::InfoSystem::InfoRequestData requestData, ui requestData.internalId = TomahawkUtils::infosystemRequestId(); else requestData.internalId = requestData.requestId; - + quint64 requestId = requestData.internalId; m_requestSatisfiedMap[ requestId ] = false; if ( timeoutMillis != 0 )