void Reader::updateFinished( int /*id*/, bool error ) { DEBUG_BLOCK ContentFetcher* http = (ContentFetcher*) sender(); disconnect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( updateFinished( int, bool ) ) ); if( error ) { http->deleteLater(); warning() << "what is going on here? " << http->error(); return; } QDataStream raw( http->results() ); Map updateResults = parse( raw, 0, true ); if( updateResults["mupd"].toList().isEmpty() ) return; //error if( updateResults["mupd"].toList()[0].toMap()["musr"].toList().isEmpty() ) return; //error m_loginString = m_loginString + "&revision-number=" + QString::number( updateResults["mupd"].toList()[0].toMap()["musr"].toList()[0].toInt() ); connect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( databaseIdFinished( int, bool ) ) ); http->getDaap( "/databases?" + m_loginString ); }
void Reader::logoutRequest() { ContentFetcher* http = new ContentFetcher( m_host, m_port, m_password, this, "readerLogoutHttp" ); connect( http, SIGNAL( httpError( const QString& ) ), this, SLOT( fetchingError( const QString& ) ) ); connect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( logoutRequest( int, bool ) ) ); http->getDaap( "/logout?" + m_loginString ); }
void Reader::loginRequest() { DEBUG_BLOCK ContentFetcher* http = new ContentFetcher( m_host, m_port, m_password, this, "readerHttp"); connect( http, SIGNAL(httpError(QString)), this, SLOT(fetchingError(QString)) ); connect( http, SIGNAL(requestFinished(int,bool)), this, SLOT(contentCodesReceived(int,bool)) ); http->getDaap( "/content-codes" ); }
void Reader::loginRequest() { DEBUG_BLOCK ContentFetcher* http = new ContentFetcher( m_host, m_port, m_password, this, "readerHttp"); connect( http, SIGNAL( httpError( const QString& ) ), this, SLOT( fetchingError( const QString& ) ) ); connect( http, SIGNAL( responseHeaderReceived( const QHttpResponseHeader & ) ) , this, SLOT( loginHeaderReceived( const QHttpResponseHeader & ) ) ); http->getDaap( "/login" ); }
void Reader::databaseIdFinished( int /*id*/, bool error ) { ContentFetcher* http = (ContentFetcher*) sender(); disconnect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( databaseIdFinished( int, bool ) ) ); if( error ) { http->deleteLater(); return; } Map dbIdResults = parse( http->results(), 0, true ); m_databaseId = QString::number( dbIdResults["avdb"].asList()[0].asMap()["mlcl"].asList()[0].asMap()["mlit"].asList()[0].asMap()["miid"].asList()[0].asInt() ); connect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( songListFinished( int, bool ) ) ); http->getDaap( QString("/databases/%1/items?type=music&meta=dmap.itemid,dmap.itemname,daap.songformat,daap.songartist,daap.songalbum,daap.songtime,daap.songtracknumber,daap.songcomment,daap.songyear,daap.songgenre&%2") .arg( m_databaseId, m_loginString ) ); }
void Reader::loginFinished( int /* id */, bool error ) { DEBUG_BLOCK ContentFetcher* http = (ContentFetcher*) sender(); disconnect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( loginFinished( int, bool ) ) ); if( error ) { http->deleteLater(); return; } Map loginResults = parse( http->results() , 0 ,true ); m_sessionId = loginResults["mlog"].asList()[0].asMap()["mlid"].asList()[0].asInt(); m_loginString = "session-id=" + QString::number( m_sessionId ); connect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( updateFinished( int, bool ) ) ); http->getDaap( "/update?" + m_loginString ); }
void Reader::loginFinished( int /* id */, bool error ) { DEBUG_BLOCK ContentFetcher* http = (ContentFetcher*) sender(); disconnect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( loginFinished( int, bool ) ) ); if( error ) { http->deleteLater(); return; } QDataStream raw( http->results() ); Map loginResults = parse( raw , 0 ,true ); debug() << "list size is " << loginResults["mlog"].toList().size(); if( loginResults["mlog"].toList().size() == 0 ) return; QVariant tmp = loginResults["mlog"].toList()[0]; Debug::stamp(); m_sessionId = tmp.toMap()["mlid"].toList()[0].toInt(); Debug::stamp(); m_loginString = "session-id=" + QString::number( m_sessionId ); connect( http, SIGNAL( requestFinished( int, bool ) ), this, SLOT( updateFinished( int, bool ) ) ); http->getDaap( "/update?" + m_loginString ); }