- if element.text is not None and element.text != "":
- return element.text
- else:
- ret = {}
- artist = element.getparent().getparent()
- if artist is not None:
- for child in artist:
- if child.tag == 'name':
- ret['artist'] = child.text
- elif child.tag == 'id':
- ret['artist_id'] = child.text
- for child in element:
- if child.tag in ['name', 'id', 'image']:
- if child.text:
- ret[child.tag] = child.text
- else:
- ret[child.tag] = ""
- if child.tag == 'Tracks':
- tracks = []
- for track in child:
- trackd = {}
- for trackinfo in track:
- if trackinfo.tag in ['name', 'id', 'numalbum']:
- trackd[trackinfo.tag] = trackinfo.text
- tracks.append(trackd)
- ret['tracks'] = tracks
- return ret
+ ret = {}
+ artist = element.getparent().getparent()
+ if artist is not None:
+ for child in artist:
+ if child.tag == 'name':
+ ret['artist'] = child.text
+ elif child.tag == 'id':
+ ret['artist_id'] = int(child.text)
+ for child in element:
+ if child.tag == 'id':
+ ret['id'] = int(child.text)
+ elif child.tag in ('name', 'image'):
+ if child.text:
+ ret[child.tag] = child.text
+ else:
+ ret[child.tag] = ""
+ elif child.tag == 'Tracks':
+ ret['tracks'] = [self.make_track_obj(t) for t in child]
+ return ret