def handle_record(self, image): """Handle a record. Read metadata from IPTC fields, decodes latin-1 encoding. Return a new MHNTRecord """ info = IPTCInfo(image) image_metadata = {} for key, value in info.getData().items(): key = IPTCData.keyAsStr(key) try: image_metadata[key] = self.decode_strip_encode(value) except AttributeError: image_metadata[key] = [self.decode_strip_encode(x) for x in value] image_metadata['original_name'] = search_original_name(image_metadata['caption/abstract']) if 'headline' in image_metadata: image_metadata['title'] = image_metadata['headline'] elif image_metadata['original_name']: image_metadata['title'] = image_metadata['original_name'] else: image_metadata['title'] = "NONE" image_metadata['nonstandard_231'] = "REDACTED" return metadata.MetadataRecord(image, image_metadata)
''' for f in os.listdir('.'): try: for pic in os.listdir(f): if 'jpg' in str(pic).lower() or 'jpeg' in str(pic).lower() or 'gif' in str(pic).lower() or 'bmp' in str(pic).lower(): i += 1 #print f + '/' + pic iterPhoto = open(f + '/' + pic) try: info = IPTCInfo(iterPhoto) except: print "IPTC Error (not present)" if info: try: d = info.getData()['caption/abstract'] except: print "IPTC, but no caption" d = False if d: dStripped = ''.join(d.splitlines()) #print dStripped i += 1 p = re.compile('<b>Car:</b><br>(.*?)<p>') car = False try: car = p.match(dStripped).group(1) except: print "Could not determine model" year = False try: