mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-13 17:43:59 +02:00
Handle multiply-shortened urls.
This commit is contained in:
@@ -763,39 +763,38 @@ GlobalActionManager::tracksFromMimeData( const QMimeData* data )
|
|||||||
{
|
{
|
||||||
QString plainData = QString::fromUtf8( data->data( "text/plain" ).constData() );
|
QString plainData = QString::fromUtf8( data->data( "text/plain" ).constData() );
|
||||||
tDebug() << "Got text/plain mime data:" << data->data( "text/plain" ) << "decoded to:" << plainData;
|
tDebug() << "Got text/plain mime data:" << data->data( "text/plain" ) << "decoded to:" << plainData;
|
||||||
if ( plainData.contains( "open.spotify.com/track") ||
|
handleTrackUrls ( plainData );
|
||||||
plainData.contains( "spotify:track" ) )
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
GlobalActionManager::handleTrackUrls( const QString& urls )
|
||||||
|
{
|
||||||
|
if ( urls.contains( "open.spotify.com/track") ||
|
||||||
|
urls.contains( "spotify:track" ) )
|
||||||
{
|
{
|
||||||
QStringList tracks = plainData.split( "\n" );
|
QStringList tracks = urls.split( "\n" );
|
||||||
|
|
||||||
tDebug() << "Got a list of spotify urls!" << tracks;
|
tDebug() << "Got a list of spotify urls!" << tracks;
|
||||||
SpotifyParser* spot = new SpotifyParser( tracks, this );
|
SpotifyParser* spot = new SpotifyParser( tracks, this );
|
||||||
connect( spot, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ) );
|
connect( spot, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ) );
|
||||||
} else if ( plainData.contains( "bit.ly" ) ||
|
} else if ( urls.contains( "bit.ly" ) ||
|
||||||
plainData.contains( "j.mp" ) ||
|
urls.contains( "j.mp" ) ||
|
||||||
plainData.contains( "t.co" ) )
|
urls.contains( "t.co" ) )
|
||||||
{
|
{
|
||||||
QStringList tracks = plainData.split( "\n" );
|
QStringList tracks = urls.split( "\n" );
|
||||||
|
|
||||||
tDebug() << "Got a list of shortened urls!" << tracks;
|
tDebug() << "Got a list of shortened urls!" << tracks;
|
||||||
ShortenedLinkParser* parser = new ShortenedLinkParser( tracks, this );
|
ShortenedLinkParser* parser = new ShortenedLinkParser( tracks, this );
|
||||||
connect( parser, SIGNAL( urls( QStringList ) ), this, SLOT( expandedUrls( QStringList ) ) );
|
connect( parser, SIGNAL( urls( QStringList ) ), this, SLOT( expandedUrls( QStringList ) ) );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
GlobalActionManager::expandedUrls( QStringList urls )
|
GlobalActionManager::expandedUrls( QStringList urls )
|
||||||
{
|
{
|
||||||
QStringList spotifyUrls;
|
handleTrackUrls( urls.join( "\n" ) );
|
||||||
foreach ( const QString& url, urls )
|
|
||||||
{
|
|
||||||
if( url.contains( "open.spotify.com/track") || url.contains( "spotify:track" ) )
|
|
||||||
spotifyUrls << url;
|
|
||||||
}
|
|
||||||
|
|
||||||
SpotifyParser* spot = new SpotifyParser( spotifyUrls, this );
|
|
||||||
connect( spot, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -94,6 +94,7 @@ private:
|
|||||||
bool doQueueAdd( const QStringList& parts, const QList< QPair< QString, QString > >& queryItems );
|
bool doQueueAdd( const QStringList& parts, const QList< QPair< QString, QString > >& queryItems );
|
||||||
|
|
||||||
/// handle parsing mime data
|
/// handle parsing mime data
|
||||||
|
void handleTrackUrls( const QString& urls );
|
||||||
QList< Tomahawk::query_ptr > tracksFromQueryList( const QMimeData* d );
|
QList< Tomahawk::query_ptr > tracksFromQueryList( const QMimeData* d );
|
||||||
QList< Tomahawk::query_ptr > tracksFromResultList( const QMimeData* d );
|
QList< Tomahawk::query_ptr > tracksFromResultList( const QMimeData* d );
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user