diff options
author | 2017-12-19 10:32:08 +0100 | |
---|---|---|
committer | 2017-12-19 10:32:28 +0100 | |
commit | 85f6b085c7f460f2ac9b8f64781151f082d9e2cf (patch) | |
tree | 027a2d2d5aeaaf79f56bc7d6ab79343dbd612471 /media-sound/clementine | |
parent | media-sound/clementine: amd64 stable (diff) | |
download | gentoo-85f6b085c7f460f2ac9b8f64781151f082d9e2cf.tar.gz gentoo-85f6b085c7f460f2ac9b8f64781151f082d9e2cf.tar.bz2 gentoo-85f6b085c7f460f2ac9b8f64781151f082d9e2cf.zip |
media-sound/clementine: Drop old
Closes: https://bugs.gentoo.org/640300
Package-Manager: Portage-2.3.13, Repoman-2.3.4
Diffstat (limited to 'media-sound/clementine')
6 files changed, 0 insertions, 971 deletions
diff --git a/media-sound/clementine/Manifest b/media-sound/clementine/Manifest index 59c2e0dfbb02..e631e5496230 100644 --- a/media-sound/clementine/Manifest +++ b/media-sound/clementine/Manifest @@ -1,2 +1 @@ -DIST clementine-1.3.1.tar.gz 8501827 BLAKE2B ebb003f28f9a4dd8fff4e5a92aeb1b6c948be794731c202241b8cb91f4678d6b2d035d6c9cd0d6e7b4b7d9a494d3c1c5bb5e88243e7a34e565c07c34d048ebdd SHA512 1942a046be24a583b5e2095dd39dc736c1b14a47dc4aad61d6252c1fccf745c26d7b35da907a220d5dc8c0736f5b589d050ed9582de343aa3cb5abc607001790 DIST clementine-1.3.1_p20171113.tar.gz 8467904 BLAKE2B bf1f59b987c0e4ec5c2ced00fab07c1a7e1df0eb5a46e90358b37eaaeaa916fb3e6a08ad79fc5fb791342d857783f615eb3726974dcfef9388da2793b1b7fe6a SHA512 39c459be8e4c5dd53ab9de6cdfd57f947926ccc2cd39ce2f72460bb991f7b2a28e6bc074e7bc23b0eba81c3d630e91dc2373794832c1089a9b5de7b212b94674 diff --git a/media-sound/clementine/clementine-1.3.1-r5.ebuild b/media-sound/clementine/clementine-1.3.1-r5.ebuild deleted file mode 100644 index 88c6a2096dc2..000000000000 --- a/media-sound/clementine/clementine-1.3.1-r5.ebuild +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -EGIT_REPO_URI="https://github.com/clementine-player/Clementine.git" - -LANGS=" af ar be bg bn br bs ca cs cy da de el en_CA en_GB eo es et eu fa fi fr ga gl he he_IL hi hr hu hy ia id is it ja ka kk ko lt lv mr ms my nb nl oc pa pl pt pt_BR ro ru si_LK sk sl sr sr@latin sv te tr tr_TR uk uz vi zh_CN zh_TW" - -inherit cmake-utils flag-o-matic xdg-utils gnome2-utils virtualx -[[ ${PV} == *9999* ]] && inherit git-r3 - -DESCRIPTION="Modern music player and library organizer based on Amarok 1.4 and Qt" -HOMEPAGE="https://www.clementine-player.org https://github.com/clementine-player/Clementine" -[[ ${PV} == *9999* ]] || \ -SRC_URI="https://github.com/clementine-player/Clementine/archive/${PV/_}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -[[ ${PV} == *9999* ]] || \ -KEYWORDS="amd64 x86" -IUSE="amazoncloud box cdda +dbus debug dropbox googledrive ipod lastfm mms moodbar mtp projectm pulseaudio skydrive test +udisks vkontakte wiimote" -IUSE+="${LANGS// / linguas_}" - -REQUIRED_USE=" - udisks? ( dbus ) - wiimote? ( dbus ) -" - -COMMON_DEPEND=" - dev-db/sqlite:= - >=dev-libs/glib-2.24.1-r1 - dev-libs/libxml2 - dev-libs/protobuf:= - dev-libs/qjson - >=dev-qt/qtcore-4.5:4[ssl] - >=dev-qt/qtgui-4.5:4 - >=dev-qt/qtopengl-4.5:4 - >=dev-qt/qtsql-4.5:4 - >=media-libs/chromaprint-0.6 - media-libs/gstreamer:1.0 - media-libs/gst-plugins-base:1.0 - >=media-libs/libmygpo-qt-1.0.9[qt4(+)] - >=media-libs/taglib-1.8[mp4(+)] - sys-libs/zlib - dev-libs/crypto++ - virtual/glu - virtual/opengl - x11-libs/libX11 - cdda? ( dev-libs/libcdio ) - dbus? ( >=dev-qt/qtdbus-4.5:4 ) - ipod? ( >=media-libs/libgpod-0.8.0 ) - lastfm? ( >=media-libs/liblastfm-1[qt4(+)] ) - mtp? ( >=media-libs/libmtp-1.0.0 ) - moodbar? ( sci-libs/fftw:3.0 ) - projectm? ( media-libs/glew:= - >=media-libs/libprojectm-1.2.0 ) -" -# Note: sqlite driver of dev-qt/qtsql is bundled, so no sqlite use is required; check if this can be overcome someway; -# Libprojectm-1.2 seams to work fine, so no reasons to use bundled version; check the clementine's patches: -# https://github.com/clementine-player/Clementine/tree/master/3rdparty/libprojectm/patches -# Still possibly essential but not applied yet patches are: -# 06-fix-numeric-locale.patch -# 08-stdlib.h-for-rand.patch -RDEPEND="${COMMON_DEPEND} - dbus? ( udisks? ( sys-fs/udisks:0 ) ) - mms? ( media-plugins/gst-plugins-libmms:1.0 ) - mtp? ( gnome-base/gvfs[mtp] ) - media-plugins/gst-plugins-meta:1.0 - media-plugins/gst-plugins-soup:1.0 - media-plugins/gst-plugins-taglib:1.0 -" -DEPEND="${COMMON_DEPEND} - >=dev-libs/boost-1.39:= - virtual/pkgconfig - sys-devel/gettext - dev-qt/qttest:4 - || ( - >=dev-cpp/gtest-1.8.0 - dev-cpp/gmock - ) - amazoncloud? ( dev-cpp/sparsehash ) - box? ( dev-cpp/sparsehash ) - dropbox? ( dev-cpp/sparsehash ) - googledrive? ( dev-cpp/sparsehash ) - pulseaudio? ( media-sound/pulseaudio ) - skydrive? ( dev-cpp/sparsehash ) - test? ( gnome-base/gsettings-desktop-schemas ) -" -DOCS=( Changelog README.md ) - -MY_P="${P/_}" -[[ ${PV} == *9999* ]] || \ -S="${WORKDIR}/${MY_P^}" - -PATCHES=( - "${FILESDIR}"/${PN}-1.3-fix-tokenizer.patch - "${FILESDIR}"/${P}-fix-desktop-file.patch - "${FILESDIR}"/${P}-chromaprint14.patch #603662 - "${FILESDIR}"/${P}-libechonest_removal.patch -) - -src_prepare() { - cmake-utils_src_prepare - - # some tests fail or hang - sed -i \ - -e '/add_test_file(translations_test.cpp/d' \ - tests/CMakeLists.txt || die -} - -src_configure() { - local langs x - for x in ${LANGS}; do - use linguas_${x} && langs+=" ${x}" - done - - # spotify is not in portage - local mycmakeargs=( - -DBUILD_WERROR=OFF - -DLINGUAS="${langs}" - -DENABLE_AMAZON_CLOUD_DRIVE="$(usex amazoncloud)" - -DENABLE_AUDIOCD="$(usex cdda)" - -DENABLE_DBUS="$(usex dbus)" - -DENABLE_DEVICEKIT="$(usex udisks)" - -DENABLE_LIBGPOD="$(usex ipod)" - -DENABLE_LIBLASTFM="$(usex lastfm)" - -DENABLE_LIBMTP="$(usex mtp)" - -DENABLE_MOODBAR="$(usex moodbar)" - -DENABLE_GIO=ON - -DENABLE_WIIMOTEDEV="$(usex wiimote)" - -DENABLE_VISUALISATIONS="$(usex projectm)" - -DENABLE_BOX="$(usex box)" - -DENABLE_DROPBOX="$(usex dropbox)" - -DENABLE_GOOGLE_DRIVE="$(usex googledrive)" - -DENABLE_LIBPULSE="$(usex pulseaudio)" - -DENABLE_SKYDRIVE="$(usex skydrive)" - -DENABLE_VK="$(usex vkontakte)" - -DENABLE_SPOTIFY_BLOB=OFF - -DENABLE_BREAKPAD=OFF #< disable crash reporting - -DUSE_BUILTIN_TAGLIB=OFF - -DUSE_SYSTEM_GMOCK=ON - -DUSE_SYSTEM_PROJECTM=ON - -DBUNDLE_PROJECTM_PRESETS=OFF - # force to find crypto++ see bug #548544 - -DCRYPTOPP_LIBRARIES="crypto++" - -DCRYPTOPP_FOUND=ON - # avoid automagically enabling of ccache (bug #611010) - -DCCACHE_EXECUTABLE=OFF - ) - - use !debug && append-cppflags -DQT_NO_DEBUG_OUTPUT - - cmake-utils_src_configure -} - -src_test() { - cd "${CMAKE_BUILD_DIR}" || die - virtx emake test -} - -pkg_preinst() { - gnome2_icon_savelist -} - -pkg_postinst() { - xdg_desktop_database_update - gnome2_icon_cache_update -} - -pkg_postrm() { - xdg_desktop_database_update - gnome2_icon_cache_update -} diff --git a/media-sound/clementine/files/clementine-1.3.1-chromaprint14.patch b/media-sound/clementine/files/clementine-1.3.1-chromaprint14.patch deleted file mode 100644 index bfdc49265aa3..000000000000 --- a/media-sound/clementine/files/clementine-1.3.1-chromaprint14.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ded312685735fc266d4154d355286eeb86db3bcd Mon Sep 17 00:00:00 2001 -From: Chocobozzz <florian.bigard@gmail.com> -Date: Thu, 8 Dec 2016 23:12:17 +0100 -Subject: [PATCH] Add compatibility with chromaprint >= 1.4 - ---- - src/musicbrainz/chromaprinter.cpp | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/src/musicbrainz/chromaprinter.cpp b/src/musicbrainz/chromaprinter.cpp -index 9579b62..c7ad99e 100644 ---- a/src/musicbrainz/chromaprinter.cpp -+++ b/src/musicbrainz/chromaprinter.cpp -@@ -143,16 +143,24 @@ QString Chromaprinter::CreateFingerprint() { - ChromaprintContext* chromaprint = - chromaprint_new(CHROMAPRINT_ALGORITHM_DEFAULT); - chromaprint_start(chromaprint, kDecodeRate, kDecodeChannels); -- chromaprint_feed(chromaprint, reinterpret_cast<void*>(data.data()), -+ chromaprint_feed(chromaprint, reinterpret_cast<int16_t *>(data.data()), - data.size() / 2); - chromaprint_finish(chromaprint); - -- void* fprint = nullptr; - int size = 0; -+ -+#if CHROMAPRINT_VERSION_MAJOR >= 1 && CHROMAPRINT_VERSION_MINOR >= 4 -+ u_int32_t *fprint = nullptr; -+ char *encoded = nullptr; -+#else -+ void *fprint = nullptr; -+ void *encoded = nullptr; -+#endif -+ - int ret = chromaprint_get_raw_fingerprint(chromaprint, &fprint, &size); -+ - QByteArray fingerprint; - if (ret == 1) { -- void* encoded = nullptr; - int encoded_size = 0; - chromaprint_encode_fingerprint(fprint, size, CHROMAPRINT_ALGORITHM_DEFAULT, - &encoded, &encoded_size, 1); diff --git a/media-sound/clementine/files/clementine-1.3.1-fix-desktop-file.patch b/media-sound/clementine/files/clementine-1.3.1-fix-desktop-file.patch deleted file mode 100644 index bb561318c59d..000000000000 --- a/media-sound/clementine/files/clementine-1.3.1-fix-desktop-file.patch +++ /dev/null @@ -1,52 +0,0 @@ -This patch fixes gentoo QA notices against the desktop file (see gentoo bug 460412#3) -Based upon patch extracted from upstream git; original patch info: -commit 04f73d125365d97fa6f72677ec5d220292690e56 -Author: Golubev Alexander <fatzer2@gmail.com> -Date: Mon Jul 18 13:45:03 2016 +0400 - - Remove OnlyShowIn=Unity from clementine.desktop's action sections (#5444) - -diff --git a/dist/clementine.desktop b/dist/clementine.desktop -index 2fb9559..9ee881e 100644 ---- a/dist/clementine.desktop -+++ b/dist/clementine.desktop -@@ -38,7 +38,6 @@ Actions=Play;Pause;Stop;Previous;Next; - [Desktop Action Play] - Name=Play - Exec=clementine --play --OnlyShowIn=Unity; - Name[af]=Speel - Name[be]=Прайграць - Name[bg]=Възпроизвеждане -@@ -89,7 +88,6 @@ Name[zh_TW]=播放 - [Desktop Action Pause] - Name=Pause - Exec=clementine --pause --OnlyShowIn=Unity; - Name[be]=Прыпыніць - Name[bg]=Пауза - Name[br]=Ehan -@@ -135,7 +133,6 @@ Name[zh_TW]=暫停 - [Desktop Action Stop] - Name=Stop - Exec=clementine --stop --OnlyShowIn=Unity; - Name[be]=Спыніць - Name[bg]=Спиране - Name[br]=Paouez -@@ -184,7 +181,6 @@ Name[zh_TW]=停止 - [Desktop Action Previous] - Name=Previous - Exec=clementine --previous --OnlyShowIn=Unity; - Name[af]=Vorige - Name[be]=Папярэдні - Name[bg]=Предишна -@@ -232,7 +228,6 @@ Name[zh_TW]=往前 - [Desktop Action Next] - Name=Next - Exec=clementine --next --OnlyShowIn=Unity; - Name[af]=Volgende - Name[be]=Далей - Name[bg]=Следваща diff --git a/media-sound/clementine/files/clementine-1.3.1-libechonest_removal.patch b/media-sound/clementine/files/clementine-1.3.1-libechonest_removal.patch deleted file mode 100644 index 63eb096d84d0..000000000000 --- a/media-sound/clementine/files/clementine-1.3.1-libechonest_removal.patch +++ /dev/null @@ -1,701 +0,0 @@ -Remove depend upon media-libs/libechonest and its support from clementine due to echonest service -was shutdown and this functionality is useless now and results in nothing but a slight security -and privacy risk. -See Gentoo bug #573712. -Based upon patch extracted from upstream git; original patch info: -commit a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d -Author: John Maguire <john.maguire@gmail.com> -Date: Mon Jun 27 14:45:40 2016 +0100 - - Remove echonest and update songkick concert fetcher. ---- Clementine-1.3.1/CMakeLists.txt -+++ Clementine-1.3.1/CMakeLists.txt -@@ -365,9 +365,6 @@ - endif (NOT APPLE) - endif (USE_SYSTEM_QXT) - --find_path(ECHONEST_INCLUDE_DIRS echonest/echonest_export.h) --find_library(ECHONEST_LIBRARIES echonest) -- - # Use system gmock if it's available - # We need to look for both gmock and gtest - find_path(GMOCK_INCLUDE_DIRS gmock/gmock.h) ---- Clementine-1.3.1/src/CMakeLists.txt -+++ Clementine-1.3.1/src/CMakeLists.txt -@@ -35,7 +35,6 @@ - include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS}) - include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS}) - include_directories(${QXT_INCLUDE_DIRS}) --include_directories(${ECHONEST_INCLUDE_DIRS}) - include_directories(${SHA2_INCLUDE_DIRS}) - include_directories(${CHROMAPRINT_INCLUDE_DIRS}) - include_directories(${MYGPOQT_INCLUDE_DIRS}) -@@ -297,8 +296,6 @@ - songinfo/artistinfoview.cpp - songinfo/collapsibleinfoheader.cpp - songinfo/collapsibleinfopane.cpp -- songinfo/echonestbiographies.cpp -- songinfo/echonestimages.cpp - songinfo/songinfobase.cpp - songinfo/songinfofetcher.cpp - songinfo/songinfoprovider.cpp -@@ -586,8 +583,6 @@ - songinfo/artistinfoview.h - songinfo/collapsibleinfoheader.h - songinfo/collapsibleinfopane.h -- songinfo/echonestbiographies.h -- songinfo/echonestimages.h - songinfo/songinfobase.h - songinfo/songinfofetcher.h - songinfo/songinfoprovider.h -@@ -822,16 +817,12 @@ - internet/lastfm/lastfmcompat.cpp - internet/lastfm/lastfmservice.cpp - internet/lastfm/lastfmsettingspage.cpp -- songinfo/echonestsimilarartists.cpp -- songinfo/echonesttags.cpp - songinfo/lastfmtrackinfoprovider.cpp - songinfo/tagwidget.cpp - HEADERS - covers/lastfmcoverprovider.h - internet/lastfm/lastfmservice.h - internet/lastfm/lastfmsettingspage.h -- songinfo/echonestsimilarartists.h -- songinfo/echonesttags.h - songinfo/lastfmtrackinfoprovider.h - songinfo/tagwidget.h - UI -@@ -1241,7 +1232,6 @@ - ${TAGLIB_LIBRARIES} - ${MYGPOQT_LIBRARIES} - ${CHROMAPRINT_LIBRARIES} -- ${ECHONEST_LIBRARIES} - ${GOBJECT_LIBRARIES} - ${GLIB_LIBRARIES} - ${GIO_LIBRARIES} ---- Clementine-1.3.1/src/main.cpp -+++ Clementine-1.3.1/src/main.cpp -@@ -76,8 +76,6 @@ - #include <glib.h> - #include <gst/gst.h> - --#include <echonest/Config.h> -- - #ifdef Q_OS_DARWIN - #include <sys/resource.h> - #include <sys/sysctl.h> -@@ -401,8 +399,8 @@ - // Add root CA cert for SoundCloud, whose certificate is missing on OS X. - QSslSocket::addDefaultCaCertificates( - QSslCertificate::fromPath(":/soundcloud-ca.pem", QSsl::Pem)); -- QSslSocket::addDefaultCaCertificates( -- QSslCertificate::fromPath(":/Equifax_Secure_Certificate_Authority.pem", QSsl::Pem)); -+ QSslSocket::addDefaultCaCertificates(QSslCertificate::fromPath( -+ ":/Equifax_Secure_Certificate_Authority.pem", QSsl::Pem)); - - // Has the user forced a different language? - QString override_language = options.language(); -@@ -440,10 +438,6 @@ - Application app; - app.set_language_name(language); - -- Echonest::Config::instance()->setAPIKey("DFLFLJBUF4EGTXHIG"); -- Echonest::Config::instance()->setNetworkAccessManager( -- new NetworkAccessManager); -- - // Network proxy - QNetworkProxyFactory::setApplicationProxyFactory( - NetworkProxyFactory::Instance()); ---- Clementine-1.3.1/src/songinfo/artistinfoview.cpp -+++ Clementine-1.3.1/src/songinfo/artistinfoview.cpp -@@ -16,25 +16,12 @@ - */ - - #include "artistinfoview.h" --#include "echonestbiographies.h" --#include "echonestimages.h" - #include "songinfofetcher.h" - #include "songkickconcerts.h" - #include "widgets/prettyimageview.h" - --#ifdef HAVE_LIBLASTFM --#include "echonestsimilarartists.h" --#include "echonesttags.h" --#endif -- - ArtistInfoView::ArtistInfoView(QWidget* parent) : SongInfoBase(parent) { -- fetcher_->AddProvider(new EchoNestBiographies); -- fetcher_->AddProvider(new EchoNestImages); - fetcher_->AddProvider(new SongkickConcerts); --#ifdef HAVE_LIBLASTFM -- fetcher_->AddProvider(new EchoNestSimilarArtists); -- fetcher_->AddProvider(new EchoNestTags); --#endif - } - - ArtistInfoView::~ArtistInfoView() {} ---- Clementine-1.3.1/src/songinfo/echonestbiographies.cpp -+++ Clementine-1.3.1/src/songinfo/echonestbiographies.cpp -@@ -1,123 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#include "echonestbiographies.h" -- --#include <memory> -- --#include <echonest/Artist.h> -- --#include "songinfotextview.h" --#include "core/logging.h" --#include "ui/iconloader.h" -- --struct EchoNestBiographies::Request { -- Request(int id) : id_(id), artist_(new Echonest::Artist) {} -- -- int id_; -- std::unique_ptr<Echonest::Artist> artist_; --}; -- --EchoNestBiographies::EchoNestBiographies() { -- site_relevance_["wikipedia"] = 100; -- site_relevance_["lastfm"] = 60; -- site_relevance_["amazon"] = 30; -- -- site_icons_["amazon"] = IconLoader::Load("amazon", IconLoader::Provider); -- site_icons_["aol"] = IconLoader::Load("aol", IconLoader::Provider); -- site_icons_["cdbaby"] = IconLoader::Load("cdbaby", IconLoader::Provider); -- site_icons_["lastfm"] = IconLoader::Load("as", IconLoader::Lastfm); -- site_icons_["mog"] = IconLoader::Load("mog", IconLoader::Provider); -- site_icons_["mtvmusic"] = IconLoader::Load("mtvmusic", IconLoader::Provider); -- site_icons_["myspace"] = IconLoader::Load("myspace", IconLoader::Provider); -- site_icons_["wikipedia"] = IconLoader::Load("wikipedia", IconLoader::Provider); --} -- --void EchoNestBiographies::FetchInfo(int id, const Song& metadata) { -- std::shared_ptr<Request> request(new Request(id)); -- request->artist_->setName(metadata.artist()); -- -- QNetworkReply* reply = request->artist_->fetchBiographies(); -- connect(reply, SIGNAL(finished()), SLOT(RequestFinished())); -- requests_[reply] = request; --} -- --void EchoNestBiographies::RequestFinished() { -- QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); -- if (!reply || !requests_.contains(reply)) return; -- reply->deleteLater(); -- -- RequestPtr request = requests_.take(reply); -- -- try { -- request->artist_->parseProfile(reply); -- } -- catch (Echonest::ParseError e) { -- qLog(Warning) << "Error parsing echonest reply:" << e.errorType() -- << e.what(); -- } -- -- QSet<QString> already_seen; -- -- for (const Echonest::Biography& bio : request->artist_->biographies()) { -- QString canonical_site = bio.site().toLower(); -- canonical_site.replace(QRegExp("[^a-z]"), ""); -- -- if (already_seen.contains(canonical_site)) continue; -- already_seen.insert(canonical_site); -- -- CollapsibleInfoPane::Data data; -- data.id_ = "echonest/bio/" + bio.site(); -- data.title_ = tr("Biography from %1").arg(bio.site()); -- data.type_ = CollapsibleInfoPane::Data::Type_Biography; -- -- if (site_relevance_.contains(canonical_site)) -- data.relevance_ = site_relevance_[canonical_site]; -- if (site_icons_.contains(canonical_site)) -- data.icon_ = site_icons_[canonical_site]; -- -- SongInfoTextView* editor = new SongInfoTextView; -- QString text; -- // Add a link to the bio webpage at the top if we have one -- if (!bio.url().isEmpty()) { -- QString bio_url = bio.url().toEncoded(); -- if (bio.site() == "facebook") { -- bio_url.replace("graph.facebook.com", "www.facebook.com"); -- } -- text += "<p><a href=\"" + bio_url + "\">" + -- tr("Open in your browser") + "</a></p>"; -- } -- -- text += bio.text(); -- if (bio.site() == "last.fm") { -- // Echonest lost formatting and it seems there is currently no plans on -- // Echonest side for changing this. -- // But with last.fm, we can guess newlines: " " corresponds to a newline -- // (this seems to be because on last.fm' website, extra blank is inserted -- // before <br /> tag, and this blank is kept). -- // This is tricky, but this make the display nicer for last.fm -- // biographies. -- text.replace(" ", "<p>"); -- } -- editor->SetHtml(text); -- data.contents_ = editor; -- -- emit InfoReady(request->id_, data); -- } -- -- emit Finished(request->id_); --} ---- Clementine-1.3.1/src/songinfo/echonestbiographies.h -+++ Clementine-1.3.1/src/songinfo/echonestbiographies.h -@@ -1,48 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#ifndef ECHONESTBIOGRAPHIES_H --#define ECHONESTBIOGRAPHIES_H -- --#include <memory> -- --#include "songinfoprovider.h" -- --class QNetworkReply; -- --class EchoNestBiographies : public SongInfoProvider { -- Q_OBJECT -- -- public: -- EchoNestBiographies(); -- -- void FetchInfo(int id, const Song& metadata); -- -- private slots: -- void RequestFinished(); -- -- private: -- QMap<QString, int> site_relevance_; -- QMap<QString, QIcon> site_icons_; -- -- struct Request; -- typedef std::shared_ptr<Request> RequestPtr; -- -- QMap<QNetworkReply*, RequestPtr> requests_; --}; -- --#endif // ECHONESTBIOGRAPHIES_H ---- Clementine-1.3.1/src/songinfo/echonestsimilarartists.cpp -+++ Clementine-1.3.1/src/songinfo/echonestsimilarartists.cpp -@@ -1,76 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#include "echonestsimilarartists.h" --#include "tagwidget.h" --#include "core/logging.h" --#include "ui/iconloader.h" -- --#include <echonest/Artist.h> -- --Q_DECLARE_METATYPE(QVector<QString>); -- --void EchoNestSimilarArtists::FetchInfo(int id, const Song& metadata) { -- using Echonest::Artist; -- -- Artist::SearchParams params; -- params << Artist::SearchParamEntry(Artist::Name, metadata.artist()); -- params << Artist::SearchParamEntry(Artist::MinHotttnesss, 0.5); -- -- QNetworkReply* reply = Echonest::Artist::fetchSimilar(params); -- connect(reply, SIGNAL(finished()), SLOT(RequestFinished())); -- requests_[reply] = id; --} -- --void EchoNestSimilarArtists::RequestFinished() { -- QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); -- if (!reply || !requests_.contains(reply)) return; -- reply->deleteLater(); -- -- int id = requests_.take(reply); -- -- Echonest::Artists artists; -- try { -- artists = Echonest::Artist::parseSimilar(reply); -- } -- catch (Echonest::ParseError e) { -- qLog(Warning) << "Error parsing echonest reply:" << e.errorType() -- << e.what(); -- } -- -- if (!artists.isEmpty()) { -- CollapsibleInfoPane::Data data; -- data.id_ = "echonest/similarartists"; -- data.title_ = tr("Similar artists"); -- data.type_ = CollapsibleInfoPane::Data::Type_Similar; -- data.icon_ = IconLoader::Load("echonest", IconLoader::Provider); -- -- TagWidget* widget = new TagWidget(TagWidget::Type_Artists); -- data.contents_ = widget; -- -- widget->SetIcon(IconLoader::Load("x-clementine-artist", IconLoader::Base)); -- -- for (const Echonest::Artist& artist : artists) { -- widget->AddTag(artist.name()); -- if (widget->count() >= 10) break; -- } -- -- emit InfoReady(id, data); -- } -- -- emit Finished(id); --} ---- Clementine-1.3.1/src/songinfo/echonestsimilarartists.h -+++ Clementine-1.3.1/src/songinfo/echonestsimilarartists.h -@@ -1,38 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#ifndef ECHONESTSIMILARARTISTS_H --#define ECHONESTSIMILARARTISTS_H -- --#include "songinfoprovider.h" -- --class QNetworkReply; -- --class EchoNestSimilarArtists : public SongInfoProvider { -- Q_OBJECT -- -- public: -- void FetchInfo(int id, const Song& metadata); -- -- private slots: -- void RequestFinished(); -- -- private: -- QMap<QNetworkReply*, int> requests_; --}; -- --#endif // ECHONESTSIMILARARTISTS_H ---- Clementine-1.3.1/src/songinfo/echonesttags.cpp -+++ Clementine-1.3.1/src/songinfo/echonesttags.cpp -@@ -1,80 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#include "echonesttags.h" -- --#include <memory> -- --#include <echonest/Artist.h> -- --#include "tagwidget.h" --#include "core/logging.h" --#include "ui/iconloader.h" -- --struct EchoNestTags::Request { -- Request(int id) : id_(id), artist_(new Echonest::Artist) {} -- -- int id_; -- std::unique_ptr<Echonest::Artist> artist_; --}; -- --void EchoNestTags::FetchInfo(int id, const Song& metadata) { -- std::shared_ptr<Request> request(new Request(id)); -- request->artist_->setName(metadata.artist()); -- -- QNetworkReply* reply = request->artist_->fetchTerms(); -- connect(reply, SIGNAL(finished()), SLOT(RequestFinished())); -- requests_[reply] = request; --} -- --void EchoNestTags::RequestFinished() { -- QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); -- if (!reply || !requests_.contains(reply)) return; -- reply->deleteLater(); -- -- RequestPtr request = requests_.take(reply); -- -- try { -- request->artist_->parseProfile(reply); -- } -- catch (Echonest::ParseError e) { -- qLog(Warning) << "Error parsing echonest reply:" << e.errorType() -- << e.what(); -- } -- -- if (!request->artist_->terms().isEmpty()) { -- CollapsibleInfoPane::Data data; -- data.id_ = "echonest/artisttags"; -- data.title_ = tr("Artist tags"); -- data.type_ = CollapsibleInfoPane::Data::Type_Tags; -- data.icon_ = IconLoader::Load("icon_tag", IconLoader::Lastfm); -- -- TagWidget* widget = new TagWidget(TagWidget::Type_Tags); -- data.contents_ = widget; -- -- widget->SetIcon(data.icon_); -- -- for (const Echonest::Term& term : request->artist_->terms()) { -- widget->AddTag(term.name()); -- if (widget->count() >= 10) break; -- } -- -- emit InfoReady(request->id_, data); -- } -- -- emit Finished(request->id_); --} ---- Clementine-1.3.1/src/songinfo/echonesttags.h -+++ Clementine-1.3.1/src/songinfo/echonesttags.h -@@ -1,43 +0,0 @@ --/* This file is part of Clementine. -- Copyright 2010, David Sansome <me@davidsansome.com> -- -- 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. -- -- 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. -- -- You should have received a copy of the GNU General Public License -- along with Clementine. If not, see <http://www.gnu.org/licenses/>. --*/ -- --#ifndef ECHONESTTAGS_H --#define ECHONESTTAGS_H -- --#include <memory> -- --#include "songinfoprovider.h" -- --class QNetworkReply; -- --class EchoNestTags : public SongInfoProvider { -- Q_OBJECT -- -- public: -- void FetchInfo(int id, const Song& metadata); -- -- private slots: -- void RequestFinished(); -- -- private: -- struct Request; -- typedef std::shared_ptr<Request> RequestPtr; -- -- QMap<QNetworkReply*, RequestPtr> requests_; --}; -- --#endif // ECHONESTTAGS_H ---- Clementine-1.3.1/src/songinfo/songkickconcerts.cpp -+++ Clementine-1.3.1/src/songinfo/songkickconcerts.cpp -@@ -21,9 +21,6 @@ - #include <QVBoxLayout> - #include <QXmlStreamWriter> - --#include <echonest/Artist.h> --#include <echonest/TypeInformation.h> -- - #include <qjson/parser.h> - - #include "core/closure.h" -@@ -31,77 +28,64 @@ - #include "songkickconcertwidget.h" - #include "ui/iconloader.h" - --const char* SongkickConcerts::kSongkickArtistBucket = "songkick"; --const char* SongkickConcerts::kSongkickArtistCalendarUrl = -- "https://api.songkick.com/api/3.0/artists/%1/calendar.json?" -- "per_page=5&" -- "apikey=8rgKfy1WU6IlJFfN"; -+namespace { -+const char* kSongkickArtistCalendarUrl = -+ "https://api.songkick.com/api/3.0/artists/%1/calendar.json"; -+const char* kSongkickArtistSearchUrl = -+ "https://api.songkick.com/api/3.0/search/artists.json"; -+const char* kSongkickApiKey = "8rgKfy1WU6IlJFfN"; -+} // namespace - - SongkickConcerts::SongkickConcerts() { - Geolocator* geolocator = new Geolocator; - geolocator->Geolocate(); - connect(geolocator, SIGNAL(Finished(Geolocator::LatLng)), - SLOT(GeolocateFinished(Geolocator::LatLng))); -- NewClosure(geolocator, SIGNAL(Finished(Geolocator::LatLng)), geolocator, -- SLOT(deleteLater())); -+ connect(geolocator, SIGNAL(Finished(Geolocator::LatLng)), geolocator, -+ SLOT(deleteLater())); - } - - void SongkickConcerts::FetchInfo(int id, const Song& metadata) { -- Echonest::Artist::SearchParams params; -- params.push_back( -- qMakePair(Echonest::Artist::Name, QVariant(metadata.artist()))); -- qLog(Debug) << "Params:" << params; -- QNetworkReply* reply = Echonest::Artist::search( -- params, -- Echonest::ArtistInformation(Echonest::ArtistInformation::NoInformation, -- QStringList() << kSongkickArtistBucket)); -- qLog(Debug) << reply->request().url(); -+ if (metadata.artist().isEmpty()) { -+ emit Finished(id); -+ return; -+ } -+ -+ QUrl url(kSongkickArtistSearchUrl); -+ url.addQueryItem("apikey", kSongkickApiKey); -+ url.addQueryItem("query", metadata.artist()); -+ -+ QNetworkRequest request(url); -+ QNetworkReply* reply = network_.get(request); - NewClosure(reply, SIGNAL(finished()), this, - SLOT(ArtistSearchFinished(QNetworkReply*, int)), reply, id); - } - - void SongkickConcerts::ArtistSearchFinished(QNetworkReply* reply, int id) { - reply->deleteLater(); -- try { -- Echonest::Artists artists = Echonest::Artist::parseSearch(reply); -- if (artists.isEmpty()) { -- qLog(Debug) << "Failed to find artist in echonest"; -- emit Finished(id); -- return; -- } -- -- const Echonest::Artist& artist = artists[0]; -- const Echonest::ForeignIds& foreign_ids = artist.foreignIds(); -- QString songkick_id; -- for (const Echonest::ForeignId& id : foreign_ids) { -- if (id.catalog == "songkick") { -- songkick_id = id.foreign_id; -- break; -- } -- } -- -- if (songkick_id.isEmpty()) { -- qLog(Debug) << "Failed to fetch songkick foreign id for artist"; -- emit Finished(id); -- return; -- } -- -- QStringList split = songkick_id.split(':'); -- if (split.count() != 3) { -- qLog(Error) << "Weird songkick id"; -- emit Finished(id); -- return; -- } -- -- FetchSongkickCalendar(split[2], id); -- } catch (Echonest::ParseError& e) { -- qLog(Error) << "Error parsing echonest reply:" << e.errorType() << e.what(); -+ -+ QJson::Parser parser; -+ QVariantMap json = parser.parse(reply).toMap(); -+ -+ QVariantMap results_page = json["resultsPage"].toMap(); -+ QVariantMap results = results_page["results"].toMap(); -+ QVariantList artists = results["artist"].toList(); -+ -+ if (artists.isEmpty()) { - emit Finished(id); -+ return; - } -+ -+ QVariantMap artist = artists.first().toMap(); -+ QString artist_id = artist["id"].toString(); -+ -+ FetchSongkickCalendar(artist_id, id); - } - - void SongkickConcerts::FetchSongkickCalendar(const QString& artist_id, int id) { - QUrl url(QString(kSongkickArtistCalendarUrl).arg(artist_id)); -+ url.addQueryItem("per_page", "5"); -+ url.addQueryItem("apikey", kSongkickApiKey); - qLog(Debug) << url; - QNetworkReply* reply = network_.get(QNetworkRequest(url)); - NewClosure(reply, SIGNAL(finished()), this, ---- Clementine-1.3.1/src/songinfo/songkickconcerts.h -+++ Clementine-1.3.1/src/songinfo/songkickconcerts.h -@@ -44,9 +44,6 @@ - - NetworkAccessManager network_; - Geolocator::LatLng latlng_; -- -- static const char* kSongkickArtistBucket; -- static const char* kSongkickArtistCalendarUrl; - }; - - #endif diff --git a/media-sound/clementine/metadata.xml b/media-sound/clementine/metadata.xml index 40e967ff3e4e..21fd21a75522 100644 --- a/media-sound/clementine/metadata.xml +++ b/media-sound/clementine/metadata.xml @@ -20,7 +20,6 @@ <name>Gentoo Sound project</name> </maintainer> <use> - <flag name="amazoncloud">Enable Amazon cloud drive support</flag> <flag name="box">Enable filesharing via Box.com</flag> <flag name="dropbox">Enable Dropbox support</flag> <flag name="googledrive">Enable Google Drive support</flag> @@ -29,7 +28,6 @@ <flag name="projectm">Build with ProjectM visualization</flag> <flag name="seafile">Enable support for seafile: a file sync service</flag> <flag name="skydrive">Enable Skydrive support</flag> - <flag name="vkontakte">Enable vk.com support</flag> <flag name="wiimote">Enable support for Wii remote</flag> </use> <upstream> |