Merge branch 'master' of ssh://git.musicbrainz.org:10015/picard

This commit is contained in:
Lukáš Lalinský
2011-12-19 21:13:44 +01:00
2 changed files with 31 additions and 18 deletions

View File

@@ -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)

View File

@@ -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):