emmental/curds/album.py

27 lines
918 B
Python

# Copyright 2019 (c) Anna Schumaker.
import hashlib
album_map = dict()
class Album:
def __init__(self, fileinfo):
self.album = fileinfo.get("album", [ "Unknown Album" ])[0]
self.genre = fileinfo.get("genre", [ "Unknown" ])[0]
self.date = int(fileinfo.get("date", [ 0 ])[0])
self.tracktotal = int(fileinfo.get("tracktotal", [ 0 ])[0])
self.albumartist = fileinfo.get("albumartist",
fileinfo.get("album artist",
fileinfo.get("artist", [ "Unknown Artist" ])))[0]
def hash(self):
md5 = hashlib.md5()
md5.update(self.album.encode('utf-8'))
md5.update(self.albumartist.encode('utf-8'))
md5.update(str(self.date).encode('utf-8'))
return md5.hexdigest()
def lookup(fileinfo):
album = Album(fileinfo)
return album_map.setdefault(album.hash(), album)