mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 22:26:32 +02:00
Fix crash in parseResultVariantList for broken track data
This commit is contained in:
@@ -259,10 +259,20 @@ ScriptAccount::parseResultVariantList( const QVariantList& reslist )
|
|||||||
{
|
{
|
||||||
QList< Tomahawk::result_ptr > results;
|
QList< Tomahawk::result_ptr > results;
|
||||||
|
|
||||||
|
|
||||||
foreach( const QVariant& rv, reslist )
|
foreach( const QVariant& rv, reslist )
|
||||||
{
|
{
|
||||||
QVariantMap m = rv.toMap();
|
QVariantMap m = rv.toMap();
|
||||||
|
|
||||||
|
const QString artistString = m.value("artist").toString().trimmed();
|
||||||
|
const QString trackString = m.value("track").toString().trimmed();
|
||||||
|
|
||||||
|
if ( artistString.isEmpty() || trackString.isEmpty() )
|
||||||
|
{
|
||||||
|
tLog() << Q_FUNC_INFO << "Could not parse Track" << m;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int duration = m.value( "duration", 0 ).toInt();
|
int duration = m.value( "duration", 0 ).toInt();
|
||||||
if ( duration <= 0 && m.contains( "durationString" ) )
|
if ( duration <= 0 && m.contains( "durationString" ) )
|
||||||
{
|
{
|
||||||
@@ -270,8 +280,8 @@ ScriptAccount::parseResultVariantList( const QVariantList& reslist )
|
|||||||
duration = time.secsTo( QTime( 0, 0 ) ) * -1;
|
duration = time.secsTo( QTime( 0, 0 ) ) * -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tomahawk::track_ptr track = Tomahawk::Track::get( m.value( "artist" ).toString(),
|
Tomahawk::track_ptr track = Tomahawk::Track::get( artistString,
|
||||||
m.value( "track" ).toString(),
|
trackString,
|
||||||
m.value( "album" ).toString(),
|
m.value( "album" ).toString(),
|
||||||
m.value( "albumArtist" ).toString(),
|
m.value( "albumArtist" ).toString(),
|
||||||
duration,
|
duration,
|
||||||
|
Reference in New Issue
Block a user