1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-06 06:07:37 +02:00

Add getDownloadUrl (similar to getStreamUrl)

This commit is contained in:
Mickaël Thomas
2016-05-19 22:14:26 +02:00
parent 58b640d389
commit abc00b4758
8 changed files with 50 additions and 13 deletions

View File

@@ -275,6 +275,9 @@ Tomahawk.Resolver = {
getStreamUrl: function (params) {
return params;
},
getDownloadUrl: function (params) {
return params;
},
resolve: function() {
},
_adapter_resolve: function (params) {
@@ -1771,6 +1774,14 @@ Tomahawk.Collection = {
return this.resolver.getStreamUrl(params);
}
return params;
},
getDownloadUrl: function(params) {
if(this.resolver) {
return this.resolver.getDownloadUrl(params);
}
return params;
}
};

View File

@@ -206,22 +206,13 @@ DownloadJob::download()
{
if ( m_state == Running )
return true;
setState( Running );
if ( m_result->resolvedByCollection() )
{
Tomahawk::ScriptCollection* collection = qobject_cast<Tomahawk::ScriptCollection*>( m_result->resolvedByCollection().data() );
if ( collection )
{
QVariantMap arguments;
arguments[ "url" ] = m_format.url;
Tomahawk::ScriptJob *job = m_result->resolvedBy()->getDownloadUrl( m_result, m_format );
connect( job, SIGNAL( done(QVariantMap) ), SLOT( onUrlRetrieved(QVariantMap) ) );
job->start();
// HACK: *shrug* WIP.
Tomahawk::ScriptJob* job = collection->scriptObject()->invoke( "getStreamUrl", arguments );
connect( job, SIGNAL( done(QVariantMap) ), SLOT( onUrlRetrieved(QVariantMap) ) );
job->start();
}
}
return true;
}

View File

@@ -711,3 +711,14 @@ JSResolver::getStreamUrl( const result_ptr& result )
return scriptObject()->invoke( "getStreamUrl", arguments );
}
ScriptJob*
JSResolver::getDownloadUrl( const result_ptr& result, const DownloadFormat& format )
{
QVariantMap arguments;
arguments["url"] = format.url.toString();
arguments["extension"] = format.extension;
arguments["mimetype"] = format.mimetype;
return scriptObject()->invoke( "getDownloadUrl", arguments );
}

View File

@@ -76,6 +76,8 @@ public:
ScriptAccount* scriptAccount() const;
ScriptJob* getStreamUrl( const result_ptr& result ) override;
ScriptJob* getDownloadUrl( const result_ptr& result, const DownloadFormat &format ) override;
public slots:
void resolve( const Tomahawk::query_ptr& query ) override;

View File

@@ -45,3 +45,12 @@ Tomahawk::Resolver::getStreamUrl( const result_ptr& result )
return new SyncScriptJob( data );
}
Tomahawk::ScriptJob*
Tomahawk::Resolver::getDownloadUrl( const result_ptr& result, const DownloadFormat& format )
{
QVariantMap data;
data[ "url" ] = format.url.toString();
return new SyncScriptJob( data );
}

View File

@@ -21,6 +21,7 @@
#include "Typedefs.h"
#include "DllMacro.h"
#include "../DownloadJob.h"
#include <QObject>
@@ -52,6 +53,7 @@ public:
virtual void resolve( const Tomahawk::query_ptr& query ) = 0;
virtual ScriptJob* getStreamUrl( const result_ptr& result );
virtual ScriptJob* getDownloadUrl( const result_ptr& result, const DownloadFormat& format );
};
} //ns

View File

@@ -235,6 +235,16 @@ ScriptCollection::getStreamUrl( const result_ptr& result )
return scriptObject()->invoke( "getStreamUrl", arguments );
}
ScriptJob*
ScriptCollection::getDownloadUrl( const result_ptr& result, const DownloadFormat& format )
{
QVariantMap arguments;
arguments["url"] = format.url.toString();
arguments["extension"] = format.extension;
arguments["mimetype"] = format.mimetype;
return scriptObject()->invoke( "getDownloadUrl", arguments );
}
void
ScriptCollection::parseMetaData( const QVariantMap& metadata )

View File

@@ -96,6 +96,7 @@ public:
unsigned int timeout() const override;
void resolve( const Tomahawk::query_ptr& query ) override;
ScriptJob* getStreamUrl( const result_ptr& result ) override;
ScriptJob* getDownloadUrl( const result_ptr& result, const DownloadFormat &format ) override;
private slots:
void onIconFetched();