def write_info(self): """Write picasa album names and star rating to photo's IPTC keywords.""" for photo, info in self.photos.items(): photo = IPTCInfo(photo, force=True) if "albums" in info: photo.keywords = list(set(photo.keywords + info["albums"])) print "Write: {}".format(photo.keywords) photo.save()
def test_only_write_tags_once(self): labeler = FileLabeler() info = IPTCInfo(self.jpg_file, force=True) info.keywords = ('cat', 'mammal') info.save() os.remove('%s~' % self.jpg_file) labeler.label(self.jpg_file, (u'cat', u'mammal')) info = IPTCInfo(self.jpg_file) self.assertEqual(info.keywords, ['cat', 'mammal'])
def test_preserve_existing_labels(self): labeler = FileLabeler() info = IPTCInfo(self.jpg_file, force=True) info.keywords = ('cat', 'mammal') info.save() os.remove('%s~' % self.jpg_file) labeler.label(self.jpg_file, (u'dog', u'mammal')) info = IPTCInfo(self.jpg_file) self.assertEqual(info.keywords, ['cat', 'mammal', 'dog'])
def write_info(self): """Write picasa album names and star rating to photo's IPTC keywords.""" for filename, info in self.photos.items(): photo = IPTCInfo(filename, force=True) if "albums" in info: photo.keywords = list(set(photo.keywords + info["albums"])) print "Writing {}: {}".format(filename, photo.keywords) try: photo.save() except: self.errors[filename] = sys.exc_info()[0]
def test_skip_already_tagged_files(self): file_walker = FileWalker(FileLabeler(), LabelServiceExecutor(TestServiceConnector())) os.makedirs('_testdir/2016/10') self._create_testfile('_testdir/2016/10/test1.jpg') os.makedirs('_testdir/2016/11') self._create_testfile('_testdir/2016/11/test2.jpg') info = IPTCInfo('_testdir/2016/11/test2.jpg', force=True) info.keywords = ('already', 'tagged') info.data[TAGGED_PHOTO_KEY] = TAGGED_PHOTO_LABEL info.save() file_walker.walk_and_tag('_testdir/2016') self.assertEqual(IPTCInfo('_testdir/2016/10/test1.jpg').keywords, ['cat', 'mammal', 'vertebrate', 'whiskers', 'animal']) self.assertEqual(IPTCInfo('_testdir/2016/11/test2.jpg').keywords, ['already', 'tagged'])
#!/usr/bin/env python # :mode=python:encoding=utf-8 # -*- coding: utf-8 -*- import sys sys.path.insert(0, '.') from iptcinfo import IPTCInfo, LOG, LOGDBG if __name__ == '__main__': import logging logging.basicConfig(level=logging.DEBUG) LOGDBG.setLevel(logging.DEBUG) if len(sys.argv) > 1: info = IPTCInfo(sys.argv[1], True) info.keywords = ['test'] info.supplementalCategories = [] info.contacts = [] print("info = %s\n%s" % (info, "=" * 30), file=sys.stderr) info.save()
def test_write_keywords(self): info = IPTCInfo(self.jpg_file, force=True) info.keywords = ('A', 'B') info.save() info = IPTCInfo(self.jpg_file) self.assertEqual(info.keywords, ['A', 'B'])
#!/usr/bin/env python # :mode=python:encoding=ISO-8859-2: # -*- coding: utf-8 -*- # Author: 2004 Gulácsi Tamás import sys sys.path.insert(0, '.') from iptcinfo import IPTCInfo, LOG, LOGDBG if __name__ == '__main__': import logging logging.basicConfig(level=logging.DEBUG) LOGDBG.setLevel(logging.DEBUG) if len(sys.argv) > 1: info = IPTCInfo(sys.argv[1], True) info.keywords = [u'test'] info.supplementalCategories = [] info.contacts = [] print >> sys.stderr, "info = %s\n%s" % (info, "=" * 30) info.save()