mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-24 08:33:59 +00:00
Merge branch 'master' of ssh://git.musicbrainz.org:10015/picard
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
|
||||
import traceback
|
||||
from collections import deque
|
||||
from PyQt4 import QtCore
|
||||
from PyQt4 import QtCore, QtNetwork
|
||||
from picard.metadata import Metadata, run_album_metadata_processors, run_track_metadata_processors
|
||||
from picard.dataobj import DataObject
|
||||
from picard.file import File
|
||||
@@ -122,15 +122,19 @@ class Album(DataObject, Item):
|
||||
if error:
|
||||
self.log.error("%r", unicode(http.errorString()))
|
||||
# Fix for broken NAT releases
|
||||
files = list(self.unmatched_files.files)
|
||||
for file in files:
|
||||
trackid = file.metadata["musicbrainz_trackid"]
|
||||
if mbid_validate(trackid) and file.metadata["album"] == self.config.setting["nat_name"]:
|
||||
self.tagger.move_file_to_nat(file, trackid)
|
||||
self.tagger.nats.update()
|
||||
if not self.get_num_unmatched_files():
|
||||
self.tagger.remove_album(self)
|
||||
error = False
|
||||
if error == QtNetwork.QNetworkReply.ContentNotFoundError:
|
||||
nats = False
|
||||
nat_name = self.config.setting["nat_name"]
|
||||
files = list(self.unmatched_files.files)
|
||||
for file in files:
|
||||
trackid = file.metadata["musicbrainz_trackid"]
|
||||
if mbid_validate(trackid) and file.metadata["album"] == nat_name:
|
||||
nats = True
|
||||
self.tagger.move_file_to_nat(file, trackid)
|
||||
self.tagger.nats.update()
|
||||
if nats and not self.get_num_unmatched_files():
|
||||
self.tagger.remove_album(self)
|
||||
error = False
|
||||
else:
|
||||
try:
|
||||
parsed = self._parse_release(document)
|
||||
|
||||
@@ -174,17 +174,26 @@ def label_info_from_node(node):
|
||||
|
||||
|
||||
def media_formats_from_node(node):
|
||||
formats = {}
|
||||
formats_count = {}
|
||||
formats_order = []
|
||||
for medium in node.medium:
|
||||
if "format" in medium.children:
|
||||
text = medium.format[0].text
|
||||
formats[text] = formats.get(text, 0) + 1
|
||||
if formats:
|
||||
return " + ".join([
|
||||
(str(j) + u"×" if j > 1 else "") + RELEASE_FORMATS.get(i, i)
|
||||
for i, j in formats.items()])
|
||||
else:
|
||||
return ""
|
||||
else:
|
||||
text = "(unknown)"
|
||||
if text in formats_count:
|
||||
formats_count[text] += 1
|
||||
else:
|
||||
formats_count[text] = 1
|
||||
formats_order.append(text)
|
||||
formats = []
|
||||
for format in formats_order:
|
||||
count = formats_count[format]
|
||||
format = RELEASE_FORMATS.get(format, format)
|
||||
if count > 1:
|
||||
format = str(count) + u"×" + format
|
||||
formats.append(format)
|
||||
return " + ".join(formats)
|
||||
|
||||
|
||||
def track_to_metadata(node, track, config):
|
||||
|
||||
Reference in New Issue
Block a user