diff --git a/spotifyblob/main.cpp b/spotifyblob/main.cpp index be7c995b0..da02d2749 100644 --- a/spotifyblob/main.cpp +++ b/spotifyblob/main.cpp @@ -1,3 +1,24 @@ +/* This file is part of Clementine. + Copyright 2011, David Sansome + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #include #include diff --git a/spotifyblob/spotifyclient.cpp b/spotifyblob/spotifyclient.cpp index 85fe60925..8ecdeda82 100644 --- a/spotifyblob/spotifyclient.cpp +++ b/spotifyblob/spotifyclient.cpp @@ -1,20 +1,24 @@ /* This file is part of Clementine. - Copyright 2010, David Sansome + Copyright 2011, David Sansome - Clementine is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - Clementine is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the GNU General Public License - along with Clementine. If not, see . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #include "spotifyclient.h" #include "spotifykey.h" #include "spotifymessages.pb.h" @@ -27,6 +31,7 @@ SpotifyClient::SpotifyClient(QObject* parent) : QObject(parent), + api_key_(QByteArray::fromBase64(kSpotifyApiKey)), socket_(new QTcpSocket(this)), session_(NULL), events_timer_(new QTimer(this)) { @@ -46,8 +51,8 @@ SpotifyClient::SpotifyClient(QObject* parent) spotify_config_.api_version = SPOTIFY_API_VERSION; // From libspotify/api.h spotify_config_.cache_location = strdup(QDir::tempPath().toLocal8Bit().constData()); spotify_config_.settings_location = strdup(QDir::tempPath().toLocal8Bit().constData()); - spotify_config_.application_key = g_appkey; - spotify_config_.application_key_size = g_appkey_size; + spotify_config_.application_key = api_key_.constData(); + spotify_config_.application_key_size = api_key_.size(); spotify_config_.callbacks = &spotify_callbacks_; spotify_config_.userdata = this; spotify_config_.user_agent = "Clementine Player"; @@ -65,6 +70,7 @@ SpotifyClient::~SpotifyClient() { free(const_cast(spotify_config_.cache_location)); free(const_cast(spotify_config_.settings_location)); + free(const_cast(spotify_config_.application_key)); } void SpotifyClient::Init(quint16 port) { diff --git a/spotifyblob/spotifyclient.h b/spotifyblob/spotifyclient.h index 7d10feec8..4a1f56895 100644 --- a/spotifyblob/spotifyclient.h +++ b/spotifyblob/spotifyclient.h @@ -1,3 +1,24 @@ +/* This file is part of Clementine. + Copyright 2011, David Sansome + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #ifndef SPOTIFYCLIENT_H #define SPOTIFYCLIENT_H @@ -52,6 +73,8 @@ private: void GetPlaylists(); void Search(const QString& query); + QByteArray api_key_; + QTcpSocket* socket_; sp_session_config spotify_config_; diff --git a/spotifyblob/spotifykey.h b/spotifyblob/spotifykey.h index 13d2285dc..b4f6c13f4 100644 --- a/spotifyblob/spotifykey.h +++ b/spotifyblob/spotifykey.h @@ -1,28 +1,33 @@ -#include -#include +/* This file is part of Clementine. + Copyright 2011, David Sansome -const uint8_t g_appkey[] = { - 0x01, 0x59, 0x4E, 0xAE, 0xF2, 0x64, 0x2B, 0x1F, 0x13, 0xF8, 0xB1, 0x2C, 0x0A, 0x4F, 0x8A, 0xCA, - 0x5D, 0xB8, 0x23, 0x43, 0x12, 0xB2, 0x3A, 0x21, 0x64, 0x0B, 0x4C, 0x17, 0x39, 0xB6, 0x3B, 0x92, - 0xE6, 0xB3, 0x56, 0xE6, 0x01, 0x61, 0x56, 0x81, 0xD6, 0x5A, 0x1E, 0x4A, 0x72, 0xA7, 0x34, 0x89, - 0x3E, 0x64, 0x9D, 0xF9, 0x68, 0xB9, 0xD3, 0x0C, 0x20, 0x27, 0x05, 0x42, 0x53, 0x4B, 0x2A, 0xE0, - 0xB7, 0xA9, 0xD7, 0x30, 0x78, 0xB7, 0xA6, 0x7C, 0x87, 0x6E, 0x8D, 0x2B, 0xAF, 0xB3, 0xF2, 0x09, - 0xA4, 0x1D, 0x59, 0x15, 0xF4, 0x34, 0x4F, 0x91, 0x18, 0x1E, 0x6D, 0xC5, 0x24, 0x59, 0x30, 0xD3, - 0x7E, 0x5C, 0x15, 0x3C, 0xA5, 0x85, 0xE3, 0xE8, 0x1D, 0x46, 0x35, 0x30, 0xA6, 0xBB, 0x2A, 0x07, - 0x0E, 0x8E, 0x8A, 0x87, 0xD1, 0x2C, 0x9C, 0xDE, 0x29, 0xAC, 0x5B, 0x99, 0xA5, 0x06, 0xAA, 0x44, - 0xA4, 0xC5, 0x52, 0xCE, 0x89, 0x70, 0xBD, 0x97, 0x1C, 0xA5, 0x36, 0xAE, 0xA3, 0xBB, 0xB4, 0x3B, - 0xB9, 0x8F, 0x2E, 0xF1, 0x79, 0x03, 0x52, 0xC5, 0x4C, 0xDD, 0x82, 0x31, 0x89, 0x6C, 0xB6, 0xF8, - 0x43, 0x3B, 0x23, 0xF9, 0x61, 0x6A, 0xDC, 0xD3, 0xF7, 0x1A, 0xEA, 0xAF, 0x11, 0xDE, 0xDA, 0x58, - 0x3B, 0x0B, 0x33, 0xB0, 0x17, 0x99, 0x2E, 0x15, 0xDC, 0x20, 0x9A, 0x2F, 0x0C, 0x43, 0xBD, 0xB1, - 0x4D, 0x85, 0xC8, 0x2A, 0x73, 0x65, 0x3A, 0xBC, 0xBF, 0x84, 0x90, 0xE5, 0x37, 0xD9, 0x4A, 0xC6, - 0x46, 0xD4, 0x04, 0xB8, 0x7E, 0xA7, 0x36, 0xD8, 0xBC, 0xEF, 0x76, 0x4B, 0x67, 0xD8, 0x28, 0xAE, - 0x4F, 0x00, 0x7B, 0xD7, 0xE7, 0xE4, 0xA6, 0x48, 0x11, 0x9B, 0x87, 0xA7, 0x65, 0xA4, 0x77, 0x82, - 0x1A, 0xA6, 0xFC, 0x30, 0xF7, 0x5A, 0x79, 0x9E, 0x48, 0xD5, 0x8C, 0x4C, 0x70, 0x39, 0x31, 0x6B, - 0x6F, 0xAD, 0x6C, 0xB0, 0x3F, 0x32, 0xE6, 0xAD, 0xEE, 0x02, 0x80, 0xF6, 0xEE, 0x7B, 0x4C, 0x50, - 0xAD, 0x62, 0x3B, 0xA7, 0xFE, 0xEF, 0xE2, 0xFC, 0xE3, 0x70, 0x74, 0x12, 0x10, 0xAD, 0xE3, 0xF3, - 0x5D, 0x98, 0xE2, 0xA4, 0xED, 0xF6, 0x91, 0x89, 0x90, 0x02, 0x20, 0xA4, 0x37, 0x5A, 0x7C, 0xB2, - 0x04, 0x04, 0x70, 0x5E, 0x37, 0x43, 0x16, 0x95, 0xC1, 0x71, 0xA8, 0xD9, 0x7D, 0x2B, 0x46, 0x72, - 0x5F, -}; + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -const size_t g_appkey_size = sizeof(g_appkey); + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + +// The Spotify terms of service require that application keys are not +// accessible to third parties. Therefore this application key is heavily +// encrypted here in the source to prevent third parties from viewing it. +// It is most definitely not base64 encoded. + +static const char* kSpotifyApiKey = + "AVlOrvJkKx8T+LEsCk+Kyl24I0MSsjohZAtMFzm2O5Lms1bmAWFWgdZaHkpypzSJPmSd+Wi50wwg" + "JwVCU0sq4Lep1zB4t6Z8h26NK6+z8gmkHVkV9DRPkRgebcUkWTDTflwVPKWF4+gdRjUwprsqBw6O" + "iofRLJzeKaxbmaUGqkSkxVLOiXC9lxylNq6ju7Q7uY8u8XkDUsVM3YIxiWy2+EM7I/lhatzT9xrq" + "rxHe2lg7CzOwF5kuFdwgmi8MQ72xTYXIKnNlOry/hJDlN9lKxkbUBLh+pzbYvO92S2fYKK5PAHvX" + "5+SmSBGbh6dlpHeCGqb8MPdaeZ5I1YxMcDkxa2+tbLA/Muat7gKA9u57TFCtYjun/u/i/ONwdBIQ" + "rePzXZjipO32kYmQAiCkN1p8sgQEcF43QxaVwXGo2X0rRnJf"; diff --git a/spotifyblob/spotifymessages.proto b/spotifyblob/spotifymessages.proto index 8f18f34b2..bec3b8180 100644 --- a/spotifyblob/spotifymessages.proto +++ b/spotifyblob/spotifymessages.proto @@ -1,3 +1,24 @@ +/* This file is part of Clementine. + Copyright 2011, David Sansome + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + package protobuf; message LoginRequest { diff --git a/spotifyblob/spotifymessageutils.cpp b/spotifyblob/spotifymessageutils.cpp index 6484a707d..621e68cf9 100644 --- a/spotifyblob/spotifymessageutils.cpp +++ b/spotifyblob/spotifymessageutils.cpp @@ -1,3 +1,24 @@ +/* This file is part of Clementine. + Copyright 2011, David Sansome + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #include "spotifymessages.pb.h" #include "spotifymessageutils.h" #include "core/logging.h" diff --git a/spotifyblob/spotifymessageutils.h b/spotifyblob/spotifymessageutils.h index 25c8b94a7..f566bad86 100644 --- a/spotifyblob/spotifymessageutils.h +++ b/spotifyblob/spotifymessageutils.h @@ -1,3 +1,24 @@ +/* This file is part of Clementine. + Copyright 2011, David Sansome + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #ifndef SPOTIFYMESSAGEUTILS_H #define SPOTIFYMESSAGEUTILS_H diff --git a/src/core/logging.cpp b/src/core/logging.cpp index a5be61eae..9b2885902 100644 --- a/src/core/logging.cpp +++ b/src/core/logging.cpp @@ -14,6 +14,11 @@ limitations under the License. */ +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #include #include #include diff --git a/src/core/logging.h b/src/core/logging.h index 66dc3e2db..82be40f26 100644 --- a/src/core/logging.h +++ b/src/core/logging.h @@ -14,6 +14,11 @@ limitations under the License. */ +// Note: this file is licensed under the Apache License instead of GPL because +// it is used by the Spotify blob which links against libspotify and is not GPL +// compatible. + + #ifndef LOGGING_H #define LOGGING_H