From 428828426c54e6dda0728174bf1084e39c709124 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 22 May 2011 20:40:31 -0400 Subject: [PATCH] fix artist hotttnesss link, switch to /station/ and /autoplaylist/, and artist_limitto --- src/libtomahawk/globalactionmanager.cpp | 29 +++++++++++++++++++------ src/libtomahawk/globalactionmanager.h | 2 ++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/libtomahawk/globalactionmanager.cpp b/src/libtomahawk/globalactionmanager.cpp index 82e44bb78..c317a0ebc 100644 --- a/src/libtomahawk/globalactionmanager.cpp +++ b/src/libtomahawk/globalactionmanager.cpp @@ -103,7 +103,7 @@ GlobalActionManager::copyPlaylistToClipboard( const Tomahawk::dynplaylist_ptr& p foreach( const Tomahawk::dyncontrol_ptr& c, controls ) { if( c->selectedType() == "Artist" ) { if( c->match().toInt() == Echonest::DynamicPlaylist::ArtistType ) - link.addQueryItem( "artist_limit", c->input() ); + link.addQueryItem( "artist_limitto", c->input() ); else link.addQueryItem( "artist", c->input() ); } else if( c->selectedType() == "Artist Description" ) { @@ -192,6 +192,8 @@ GlobalActionManager::parseTomahawkLink( const QString& url ) return handleQueueCommand( u ); } else if( cmdType == "station" ) { return handleStationCommand( u ); + } else if( cmdType == "autoplaylist" ) { + return handleAutoPlaylistCommand( u ); } else if( cmdType == "search" ) { return handleSearchCommand( u ); } else if( cmdType == "play" ) { @@ -377,7 +379,13 @@ GlobalActionManager::handleSearchCommand( const QUrl& url ) } bool -GlobalActionManager::handleStationCommand( const QUrl& url ) +GlobalActionManager::handleAutoPlaylistCommand( const QUrl& url ) +{ + return loadDynamicPlaylist( url, false ); +} + +bool +GlobalActionManager::loadDynamicPlaylist( const QUrl& url, bool station ) { QStringList parts = url.path().split( "/" ).mid( 1 ); // get the rest of the command if( parts.isEmpty() ) { @@ -392,9 +400,9 @@ GlobalActionManager::handleStationCommand( const QUrl& url ) } QString title = url.queryItemValue( "title" ); QString type = url.queryItemValue( "type" ); - Tomahawk::GeneratorMode m = Tomahawk::OnDemand; - if( url.hasQueryItem( "plmode" ) && url.queryItemValue( "plmode" ).toInt() == 1 ) - m = Tomahawk::Static; + Tomahawk::GeneratorMode m = Tomahawk::Static; + if( station ) + m = Tomahawk::OnDemand; Tomahawk::dynplaylist_ptr pl = Tomahawk::DynamicPlaylist::create( SourceList::instance()->getLocal(), uuid(), title, QString(), QString(), m, false, type ); pl->setMode( m ); @@ -406,7 +414,7 @@ GlobalActionManager::handleStationCommand( const QUrl& url ) c->setInput( param.second ); c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistRadioType ) ); controls << c; - } else if( param.first == "artist_limit" ) { + } else if( param.first == "artist_limitto" ) { Tomahawk::dyncontrol_ptr c = pl->generator()->createControl( "Artist" ); c->setInput( param.second ); c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistType ) ); @@ -461,7 +469,7 @@ GlobalActionManager::handleStationCommand( const QUrl& url ) Tomahawk::dyncontrol_ptr c = pl->generator()->createControl( "Artist Hotttnesss" ); int extra = param.first.endsWith( "_max" ) ? -1 : 0; c->setInput( param.second ); - c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinFamiliarity + extra ) ); + c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinHotttnesss + extra ) ); controls << c; } else if( param.first.startsWith( "song_hotttnesss" ) ) { Tomahawk::dyncontrol_ptr c = pl->generator()->createControl( "Song Hotttnesss" ); @@ -504,6 +512,13 @@ GlobalActionManager::handleStationCommand( const QUrl& url ) return false; } + +bool +GlobalActionManager::handleStationCommand( const QUrl& url ) +{ + return loadDynamicPlaylist( url, true ); +} + bool GlobalActionManager::handlePlayCommand( const QUrl& url ) { diff --git a/src/libtomahawk/globalactionmanager.h b/src/libtomahawk/globalactionmanager.h index f8a34aa9f..061d1609a 100644 --- a/src/libtomahawk/globalactionmanager.h +++ b/src/libtomahawk/globalactionmanager.h @@ -59,11 +59,13 @@ private: bool handleCollectionCommand(const QUrl& url ); bool handleQueueCommand(const QUrl& url ); bool handleStationCommand(const QUrl& url ); + bool handleAutoPlaylistCommand(const QUrl& url ); bool handleSearchCommand(const QUrl& url ); bool handlePlayCommand(const QUrl& url ); bool handleBookmarkCommand(const QUrl& url ); bool handleOpenCommand(const QUrl& url ); + bool loadDynamicPlaylist( const QUrl& url, bool station ); bool doQueueAdd( const QStringList& parts, const QList< QPair< QString, QString > >& queryItems ); Tomahawk::playlist_ptr m_toShow;