mirror of
https://github.com/fergalmoran/picard.git
synced 2026-05-08 03:56:08 +00:00
PICARD-418: fallback to using release group cover
It adds the option to use release group cover art from CAA. It is required to enable CAA and release group fallback is disabled by default
This commit is contained in:
@@ -98,7 +98,9 @@ class CoverArtProvider:
|
||||
from picard.coverartproviders.caa import CoverArtProviderCaa
|
||||
from picard.coverartproviders.amazon import CoverArtProviderAmazon
|
||||
from picard.coverartproviders.whitelist import CoverArtProviderWhitelist
|
||||
from picard.coverartproviders.caa_release_group import CoverArtProviderCaaReleaseGroup
|
||||
|
||||
register_cover_art_provider(CoverArtProviderCaa)
|
||||
register_cover_art_provider(CoverArtProviderAmazon)
|
||||
register_cover_art_provider(CoverArtProviderWhitelist)
|
||||
register_cover_art_provider(CoverArtProviderCaaReleaseGroup)
|
||||
|
||||
47
picard/coverartproviders/caa_release_group.py
Normal file
47
picard/coverartproviders/caa_release_group.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Picard, the next-generation MusicBrainz tagger
|
||||
# Copyright (C) 2014 Laurent Monin
|
||||
#
|
||||
# This program 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 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
import traceback
|
||||
|
||||
from picard import config, log
|
||||
from picard.coverartproviders import CoverArtProvider
|
||||
from picard.coverartimage import CoverArtImage
|
||||
from picard.const import CAA_HOST, CAA_PORT
|
||||
|
||||
|
||||
class CoverArtProviderCaaReleaseGroup(CoverArtProvider):
|
||||
|
||||
"""Use cover art from album release group"""
|
||||
|
||||
NAME = "CaaReleaseGroup"
|
||||
|
||||
def enabled(self):
|
||||
if not config.setting['ca_provider_use_caa']:
|
||||
log.debug("Cover art from Cover Art Archive disabled by user")
|
||||
return False
|
||||
if not config.setting['ca_provider_use_caa_release_group_fallback']:
|
||||
log.debug("Release group cover art fallback disabled by user")
|
||||
return False
|
||||
return True
|
||||
|
||||
def queue_downloads(self):
|
||||
rg_id = self.metadata['musicbrainz_releasegroupid']
|
||||
url = 'http://%s:%s/release-group/%s/front.jpg' % (CAA_HOST, CAA_PORT, rg_id)
|
||||
self.queue_put(CoverArtImage(url))
|
||||
return CoverArtProvider.FINISHED
|
||||
@@ -74,6 +74,8 @@ class CoverOptionsPage(OptionsPage):
|
||||
config.BoolOption("setting", "save_images_overwrite", False),
|
||||
config.BoolOption("setting", "ca_provider_use_amazon", True),
|
||||
config.BoolOption("setting", "ca_provider_use_caa", True),
|
||||
config.BoolOption("setting",
|
||||
"ca_provider_use_caa_release_group_fallback", False),
|
||||
config.BoolOption("setting", "ca_provider_use_whitelist", True),
|
||||
config.BoolOption("setting", "caa_approved_only", True),
|
||||
config.BoolOption("setting", "caa_image_type_as_filename", False),
|
||||
@@ -96,8 +98,11 @@ class CoverOptionsPage(OptionsPage):
|
||||
self.update_filename()
|
||||
self.ui.caprovider_amazon.setChecked(config.setting["ca_provider_use_amazon"])
|
||||
self.ui.caprovider_caa.setChecked(config.setting["ca_provider_use_caa"])
|
||||
self.ui.caprovider_caa_release_group.setChecked(
|
||||
config.setting["ca_provider_use_caa_release_group_fallback"])
|
||||
self.ui.caprovider_whitelist.setChecked(config.setting["ca_provider_use_whitelist"])
|
||||
self.ui.gb_caa.setEnabled(config.setting["ca_provider_use_caa"])
|
||||
self.ui.caprovider_caa_release_group.setEnabled(config.setting["ca_provider_use_caa"])
|
||||
|
||||
self.ui.cb_image_size.setCurrentIndex(config.setting["caa_image_size"])
|
||||
widget = self.ui.caa_types_selector_1
|
||||
@@ -107,6 +112,8 @@ class CoverOptionsPage(OptionsPage):
|
||||
self.ui.cb_type_as_filename.setChecked(config.setting["caa_image_type_as_filename"])
|
||||
self.connect(self.ui.caprovider_caa, QtCore.SIGNAL("toggled(bool)"),
|
||||
self.ui.gb_caa.setEnabled)
|
||||
self.connect(self.ui.caprovider_caa, QtCore.SIGNAL("toggled(bool)"),
|
||||
self.ui.caprovider_caa_release_group.setEnabled)
|
||||
|
||||
def save(self):
|
||||
config.setting["save_images_to_tags"] = self.ui.save_images_to_tags.isChecked()
|
||||
@@ -117,6 +124,8 @@ class CoverOptionsPage(OptionsPage):
|
||||
self.ui.caprovider_amazon.isChecked()
|
||||
config.setting["ca_provider_use_caa"] =\
|
||||
self.ui.caprovider_caa.isChecked()
|
||||
config.setting["ca_provider_use_caa_release_group_fallback"] =\
|
||||
self.ui.caprovider_caa_release_group.isChecked()
|
||||
config.setting["ca_provider_use_whitelist"] =\
|
||||
self.ui.caprovider_whitelist.isChecked()
|
||||
config.setting["caa_image_size"] =\
|
||||
|
||||
@@ -8,7 +8,16 @@ from PyQt4 import QtCore, QtGui
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
_fromUtf8 = lambda s: s
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_CoverOptionsPage(object):
|
||||
def setupUi(self, CoverOptionsPage):
|
||||
@@ -51,6 +60,10 @@ class Ui_CoverOptionsPage(object):
|
||||
self.caprovider_caa = QtGui.QCheckBox(self.groupBox)
|
||||
self.caprovider_caa.setObjectName(_fromUtf8("caprovider_caa"))
|
||||
self.verticalLayout_2.addWidget(self.caprovider_caa)
|
||||
self.caprovider_caa_release_group = QtGui.QCheckBox(self.groupBox)
|
||||
self.caprovider_caa_release_group.setEnabled(False)
|
||||
self.caprovider_caa_release_group.setObjectName(_fromUtf8("caprovider_caa_release_group"))
|
||||
self.verticalLayout_2.addWidget(self.caprovider_caa_release_group)
|
||||
self.caprovider_whitelist = QtGui.QCheckBox(self.groupBox)
|
||||
self.caprovider_whitelist.setObjectName(_fromUtf8("caprovider_whitelist"))
|
||||
self.verticalLayout_2.addWidget(self.caprovider_whitelist)
|
||||
@@ -121,7 +134,8 @@ class Ui_CoverOptionsPage(object):
|
||||
CoverOptionsPage.setTabOrder(self.cover_image_filename, self.save_images_overwrite)
|
||||
CoverOptionsPage.setTabOrder(self.save_images_overwrite, self.caprovider_amazon)
|
||||
CoverOptionsPage.setTabOrder(self.caprovider_amazon, self.caprovider_caa)
|
||||
CoverOptionsPage.setTabOrder(self.caprovider_caa, self.caprovider_whitelist)
|
||||
CoverOptionsPage.setTabOrder(self.caprovider_caa, self.caprovider_caa_release_group)
|
||||
CoverOptionsPage.setTabOrder(self.caprovider_caa_release_group, self.caprovider_whitelist)
|
||||
CoverOptionsPage.setTabOrder(self.caprovider_whitelist, self.cb_image_size)
|
||||
CoverOptionsPage.setTabOrder(self.cb_image_size, self.caa_types_selector_1)
|
||||
CoverOptionsPage.setTabOrder(self.caa_types_selector_1, self.cb_approved_only)
|
||||
@@ -137,6 +151,7 @@ class Ui_CoverOptionsPage(object):
|
||||
self.groupBox.setTitle(_("Coverart Providers"))
|
||||
self.caprovider_amazon.setText(_("Amazon"))
|
||||
self.caprovider_caa.setText(_("Cover Art Archive"))
|
||||
self.caprovider_caa_release_group.setText(_("Fallback on Cover Art Archive release group image"))
|
||||
self.caprovider_whitelist.setText(_("Sites on the whitelist"))
|
||||
self.gb_caa.setTitle(_("Cover Art Archive"))
|
||||
self.label.setText(_("Only use images of the following size:"))
|
||||
|
||||
@@ -84,6 +84,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="caprovider_caa_release_group">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fallback on Cover Art Archive release group image</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="caprovider_whitelist">
|
||||
<property name="text">
|
||||
@@ -236,6 +246,7 @@
|
||||
<tabstop>save_images_overwrite</tabstop>
|
||||
<tabstop>caprovider_amazon</tabstop>
|
||||
<tabstop>caprovider_caa</tabstop>
|
||||
<tabstop>caprovider_caa_release_group</tabstop>
|
||||
<tabstop>caprovider_whitelist</tabstop>
|
||||
<tabstop>cb_image_size</tabstop>
|
||||
<tabstop>caa_types_selector_1</tabstop>
|
||||
|
||||
Reference in New Issue
Block a user