def parse_releases_from_xml(self, release_xml): for node in release_xml: release = Metadata() release_to_metadata(node, release) rg_node = node.release_group[0] release_group_to_metadata(rg_node, release) if "medium_list" in node.children: medium_list = node.medium_list[0] release["format"] = media_formats_from_node(medium_list) release["tracks"] = medium_list.track_count[0].text countries = country_list_from_node(node) if countries: release["country"] = ", ".join(countries) self.search_results.append(release)
def parse_tracks_from_xml(self, tracks_xml): for node in tracks_xml: if "release_list" in node.children and "release" in node.release_list[0].children: for rel_node in node.release_list[0].release: track = Metadata() recording_to_metadata(node, track) release_to_metadata(rel_node, track) rg_node = rel_node.release_group[0] release_group_to_metadata(rg_node, track) countries = country_list_from_node(rel_node) if countries: track["country"] = ", ".join(countries) self.search_results.append((track, node)) else: # This handles the case when no release is associated with a track # i.e. the track is an NAT track = Metadata() recording_to_metadata(node, track) track["album"] = _("Standalone Recording") self.search_results.append((track, node))