def meta_from_mp3(file, mut: mp3.MP3): int_or_none = lambda x: None if x is None else int(x) extract = lambda x: None if x is None else x.text[0] extracti = lambda x: None if x is None else int(x.text[0]) extractpcnt = lambda x: None if x is None else x.count extracttrk = lambda x: None if x is None else Track(*str2track(x.text[0]) or None) extractgnr = lambda x: None if x is None else Genre(str2genre(x.text[0])) return Meta( name=extract(mut.get(TIT2)), artist=extract(mut.get(TPE1)), albartist=extract(mut.get(TPE2)), album=extract(mut.get(TALB)), track=extracttrk(mut.get(TRCK)), genre=extractgnr(mut.get(TCON)), playcnt=extractpcnt(mut.get(PCNT)), year=extracti(mut.get(TYER)), cd=extract(mut.get(TPOS)), comment=extract(mut.get(COMM)), )
def get_lyrics(audio: MP3): return audio.get(u"USLT::'eng'")
def get_genre(audio: MP3): return audio.get('TCON')
def get_year(audio: MP3): return audio.get('TDRC')