diff --git a/src/libtomahawk-playdarapi/Api_v1.cpp b/src/libtomahawk-playdarapi/Api_v1.cpp index b9dbb2e82..b58bf6e2e 100644 --- a/src/libtomahawk-playdarapi/Api_v1.cpp +++ b/src/libtomahawk-playdarapi/Api_v1.cpp @@ -313,24 +313,43 @@ Api_v1::resolve( QxtWebRequestEvent* event ) void -Api_v1::staticdata( QxtWebRequestEvent* event, const QString& str ) +Api_v1::staticdata( QxtWebRequestEvent* event, const QString& file ) { - tDebug( LOGVERBOSE ) << "STATIC request:" << event << str; + tDebug( LOGVERBOSE ) << "STATIC request:" << event << file; + + bool whitelisted = ( file == QString( "tomahawk_auth_logo.png" ) || + file.startsWith( "css/" ) || + file.startsWith( "js/" ) ); - bool whitelisted = ( str == QString( "tomahawk_auth_logo.png" ) ); if ( whitelisted ) { - QFile f( RESPATH "www/" + str ); + QFile f( RESPATH "www/" + file ); f.open( QIODevice::ReadOnly ); QByteArray data = f.readAll(); QxtWebPageEvent* e = new QxtWebPageEvent( event->sessionID, event->requestID, data ); - if ( str.endsWith( ".png" ) ) + if ( file.endsWith( ".png" ) ) e->contentType = "image/png"; + if ( file.endsWith( ".css" ) ) + e->contentType = "text/css"; + if ( file.endsWith( ".js" ) ) + e->contentType = "application/javascript"; postEvent( e ); } + else + { + send404( event ); + return; + } +} + + +void +Api_v1::staticdata( QxtWebRequestEvent* event, const QString& path, const QString& file ) +{ + return staticdata( event, path + "/" + file ); } diff --git a/src/libtomahawk-playdarapi/Api_v1.h b/src/libtomahawk-playdarapi/Api_v1.h index 80aabd9c8..25c2cccda 100644 --- a/src/libtomahawk-playdarapi/Api_v1.h +++ b/src/libtomahawk-playdarapi/Api_v1.h @@ -67,7 +67,8 @@ public slots: void stat( QxtWebRequestEvent* event ); void statResult( const QString& clientToken, const QString& name, bool valid ); void resolve( QxtWebRequestEvent* event ); - void staticdata( QxtWebRequestEvent* event, const QString& str ); + void staticdata( QxtWebRequestEvent* event, const QString& file ); + void staticdata( QxtWebRequestEvent* event, const QString& path, const QString& file ); void get_results( QxtWebRequestEvent* event ); void sendJSON( const QVariantMap& m, QxtWebRequestEvent* event );