def share(directory): new_directory = dropbox_dir(directory) try: shutil.copytree(directory, new_directory) except OSError as e: if e.errno != 17: # already exists raise for filename in list_files(new_directory): basename = os.path.basename(filename) meta = Metadata(filename) caption = meta.get('Headline', meta['Caption-Abstract']) caption = unicode(caption or config.get('dropbox', 'default_caption')) caption = caption.replace('/', '|') # special character in UNIX fs base, ext = os.path.splitext(basename) new_basename = u"{name}:{padding}{caption}{padding}{ext}".format( name=base, caption=caption, ext=ext.lower(), padding=u'\xa0' * 10, ) print u'{0} → {1}'.format(basename, new_basename) os.rename(filename, os.path.join(new_directory, new_basename)) print 'https://www.dropbox.com/home/{}'.format( urllib.quote(dropbox_path(directory).encode('utf-8')) )
def captions(directory): for filename in list_files(directory, exts=['jpg']): basename = os.path.basename(filename) meta = Metadata(filename) caption = meta.get('Headline', meta['Caption-Abstract']) print u'{0}: {1}'.format(basename, caption or ' - ')
def captions_fix(directory): for filename in list_files(directory, exts=['jpg']): basename = os.path.basename(filename) meta = Metadata(filename) caption = meta.get('Headline', meta['Caption-Abstract']) caption = unicode(caption or '') if caption: old_caption = caption single_quoted = caption[0] in "'" and caption[-1] == "'" double_quoted = caption[0] in '"' and caption[-1] == '"' if single_quoted or double_quoted: caption = caption[1:-1] meta['Headline'] = caption del meta['Caption-Abstract'] print u'{0}: {1} -> {2}'.format(basename, old_caption, caption)