def metadataFromString( self, string ): cbi_container = json.loads( unicode(string, 'utf-8') ) metadata = GenericMetadata() cbi = cbi_container[ 'ComicBookInfo/1.0' ] #helper func # If item is not in CBI, return None def xlate( cbi_entry): if cbi_entry in cbi: return cbi[cbi_entry] else: return None metadata.series = xlate( 'series' ) metadata.title = xlate( 'title' ) metadata.issue = xlate( 'issue' ) metadata.publisher = xlate( 'publisher' ) metadata.month = xlate( 'publicationMonth' ) metadata.year = xlate( 'publicationYear' ) metadata.issueCount = xlate( 'numberOfIssues' ) metadata.comments = xlate( 'comments' ) metadata.credits = xlate( 'credits' ) metadata.genre = xlate( 'genre' ) metadata.volume = xlate( 'volume' ) metadata.volumeCount = xlate( 'numberOfVolumes' ) metadata.language = xlate( 'language' ) metadata.country = xlate( 'country' ) metadata.criticalRating = xlate( 'rating' ) metadata.tags = xlate( 'tags' ) # make sure credits and tags are at least empty lists and not None if metadata.credits is None: metadata.credits = [] if metadata.tags is None: metadata.tags = [] #need to massage the language string to be ISO if metadata.language is not None: # reverse look-up pattern = metadata.language metadata.language = None for key in utils.getLanguageDict(): if utils.getLanguageDict()[ key ] == pattern.encode('utf-8'): metadata.language = key break metadata.isEmpty = False return metadata
def metadataFromString(self, string): cbi_container = json.loads(unicode(string, 'utf-8')) metadata = GenericMetadata() cbi = cbi_container['ComicBookInfo/1.0'] #helper func # If item is not in CBI, return None def xlate(cbi_entry): if cbi_entry in cbi: return cbi[cbi_entry] else: return None metadata.series = xlate('series') metadata.title = xlate('title') metadata.issue = xlate('issue') metadata.publisher = xlate('publisher') metadata.month = xlate('publicationMonth') metadata.year = xlate('publicationYear') metadata.issueCount = xlate('numberOfIssues') metadata.comments = xlate('comments') metadata.credits = xlate('credits') metadata.genre = xlate('genre') metadata.volume = xlate('volume') metadata.volumeCount = xlate('numberOfVolumes') metadata.language = xlate('language') metadata.country = xlate('country') metadata.criticalRating = xlate('rating') metadata.tags = xlate('tags') # make sure credits and tags are at least empty lists and not None if metadata.credits is None: metadata.credits = [] if metadata.tags is None: metadata.tags = [] #need to massage the language string to be ISO if metadata.language is not None: # reverse look-up pattern = metadata.language metadata.language = None for key in utils.getLanguageDict(): if utils.getLanguageDict()[key] == pattern.encode('utf-8'): metadata.language = key break metadata.isEmpty = False return metadata