def getInfo(self): afi = artistDBFileInfoClass(info=self.fInfo) return afi
def getData(self, inputdata): self.getDataBase(inputdata) self.checkData() if self.dbdata is not None: return self.dbdata if not isinstance(self.bsdata, dict): raise ValueError("Could not parse Discogs API data") artistData = self.bsdata["Artist"] albumsData = self.bsdata["Albums"] artistID = artistData.name artistName = artistData["name"] url = "https://www.discogs.com/artist/{0}".format(artistID) generalData = {} generalData["RealName"] = artistData["realname"] generalData["Aliases"] = artistData["MasterAliases"] generalData["Groups"] = artistData["MasterGroups"] generalData["Members"] = artistData["MasterMembers"] generalData["Variations"] = artistData["MasterNameVariations"] generalData = {k: v for k,v in generalData.items() if v is not None} generalData = generalData if len(generalData) > 0 else None ######################################################################## # Get Releases ######################################################################## mediaData = {} if isinstance(albumsData,list): for item in albumsData: code = item.get('id') albumType = item.get('type') albumFormat = item.get('format') albumLabel = item.get('label') albumName = item.get('name') albumURL = item.get('url') albumRole = item.get('role') albumArtist = item.get('artist') albumYear = item.get('year') albumMain = item.get('main_release') mediaName = self.getMediaType(item) amdc = artistDBMediaDataClass(album=albumName, url=albumURL, artist=albumArtist, code=code, aformat=albumFormat, aclass={"Label": albumLabel, "Main": albumMain}, year=albumYear) if mediaData.get(mediaName) is None: mediaData[mediaName] = [] mediaData[mediaName].append(amdc) elif isinstance(albumsData,dict): mediaData = albumsData else: raise ValueError("Not sure how to process albums [{0}]".format(albumsData)) artist = artistDBNameClass(name=artistName, err=None) meta = artistDBMetaClass(title=None, url=url) url = artistDBURLClass(url=url) ID = artistDBIDClass(ID=artistID) pages = artistDBPageClass(ppp=1, tot=1, redo=False, more=False) profile = artistDBProfileClass(general=generalData) media = artistDBMediaClass() media.media = mediaData mediaCounts = self.getMediaCounts(media) info = artistDBFileInfoClass(info=None) adc = artistDBDataClass(artist=artist, meta=meta, url=url, ID=ID, pages=pages, profile=profile, mediaCounts=mediaCounts, media=media, info=info) return adc