Audioscrobbler.cpp | Audioscrobbler.cpp | |||
---|---|---|---|---|
skipping to change at line 90 | skipping to change at line 90 | |||
{ | { | |||
QList<Track> tracks; | QList<Track> tracks; | |||
tracks.append( track ); | tracks.append( track ); | |||
cacheBatch( tracks ); | cacheBatch( tracks ); | |||
} | } | |||
void | void | |||
lastfm::Audioscrobbler::cacheBatch( const QList<lastfm::Track>& tracks, con st QString& ) | lastfm::Audioscrobbler::cacheBatch( const QList<lastfm::Track>& tracks, con st QString& ) | |||
{ | { | |||
d->m_cache.add( tracks ); | d->m_cache.add( tracks ); | |||
foreach ( const Track& track, d->m_cache.tracks() ) | ||||
MutableTrack( track ).setScrobbleStatus( Track::Cached ); | ||||
emit scrobblesCached( tracks ); | emit scrobblesCached( tracks ); | |||
submit(); | submit(); | |||
} | } | |||
void | void | |||
lastfm::Audioscrobbler::cacheBatch( const QList<lastfm::Track>& tracks ) | ||||
{ | ||||
cacheBatch( tracks, "" ); | ||||
} | ||||
void | ||||
lastfm::Audioscrobbler::submit() | lastfm::Audioscrobbler::submit() | |||
{ | { | |||
if (d->m_cache.tracks().isEmpty() // there are no tracks to submit | if (d->m_cache.tracks().isEmpty() // there are no tracks to submit | |||
|| !d->m_scrobbleReply.isNull() ) // we are already submitting scrobbles | || !d->m_scrobbleReply.isNull() ) // we are already submitting scrobbles | |||
return; | return; | |||
// copy tracks to be submitted to a temporary list | // copy tracks to be submitted to a temporary list | |||
d->m_batch = d->m_cache.tracks().mid( 0, 50 ); | d->m_batch = d->m_cache.tracks().mid( 0, 50 ); | |||
// if there is only one track use track.scrobble, otherwise use track.s crobbleBatch | // if there is only one track use track.scrobble, otherwise use track.s crobbleBatch | |||
skipping to change at line 153 | skipping to change at line 154 | |||
mTrack.setScrobbleErrorText( trackXml["ignoredMessage"].text() ); | mTrack.setScrobbleErrorText( trackXml["ignoredMessage"].text() ); | |||
mTrack.setScrobbleStatus( Track::Error ); | mTrack.setScrobbleStatus( Track::Error ); | |||
} | } | |||
} | } | |||
void | void | |||
lastfm::Audioscrobbler::onNowPlayingReturn() | lastfm::Audioscrobbler::onNowPlayingReturn() | |||
{ | { | |||
lastfm::XmlQuery lfm; | lastfm::XmlQuery lfm; | |||
if ( lfm.parse( static_cast<QNetworkReply*>(sender())->readAll() ) ) | if ( lfm.parse( d->m_nowPlayingReply ) ) | |||
{ | { | |||
qDebug() << lfm; | qDebug() << lfm; | |||
if ( lfm.attribute("status") == "ok" ) | if ( lfm.attribute("status") == "ok" ) | |||
d->parseTrack( lfm["nowplaying"], d->m_nowPlayingTrack ); | d->parseTrack( lfm["nowplaying"], d->m_nowPlayingTrack ); | |||
else | else | |||
emit nowPlayingError( lfm["error"].attribute("code").toInt(), l fm["error"].text() ); | emit nowPlayingError( lfm["error"].attribute("code").toInt(), l fm["error"].text() ); | |||
d->m_nowPlayingTrack = Track(); | ||||
d->m_nowPlayingReply = 0; | ||||
} | } | |||
else | else | |||
{ | { | |||
qDebug() << lfm.parseError().message() << lfm.parseError().enumValu e(); | qDebug() << lfm.parseError().message() << lfm.parseError().enumValu e(); | |||
} | } | |||
d->m_nowPlayingTrack = Track(); | d->m_nowPlayingTrack = Track(); | |||
d->m_nowPlayingReply = 0; | d->m_nowPlayingReply = 0; | |||
} | } | |||
void | void | |||
lastfm::Audioscrobbler::onTrackScrobbleReturn() | lastfm::Audioscrobbler::onTrackScrobbleReturn() | |||
{ | { | |||
lastfm::XmlQuery lfm; | lastfm::XmlQuery lfm; | |||
if ( lfm.parse( d->m_scrobbleReply->readAll() ) ) | if ( lfm.parse( d->m_scrobbleReply ) ) | |||
{ | { | |||
qDebug() << lfm; | qDebug() << lfm; | |||
if (lfm.attribute("status") == "ok") | if (lfm.attribute("status") == "ok") | |||
{ | { | |||
int index = 0; | int index = 0; | |||
foreach ( const XmlQuery& scrobble, lfm["scrobbles"].children(" scrobble") ) | foreach ( const XmlQuery& scrobble, lfm["scrobbles"].children(" scrobble") ) | |||
d->parseTrack( scrobble, d->m_batch.at( index++ ) ); | d->parseTrack( scrobble, d->m_batch.at( index++ ) ); | |||
End of changes. 6 change blocks. | ||||
10 lines changed or deleted | 8 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |