def init(self): """Initializes processing by launching background thread checker and initial iPhoto library check.""" self.thread_checker() if exiftool.check_exif_tool(sys.stdout): self.exiftool = True self.faces_box.configure(state=NORMAL) self.face_keywords_box.configure(state=NORMAL) self.iptc_box.configure(state=NORMAL) self.iptc_all_box.configure(state=NORMAL) self.gps_box.configure(state=NORMAL) options = self.Options() options.load() self.init_from_options(options) self.check_iphoto_library()
def main(): """main routine for phoshare.""" parser = get_option_parser() (options, args) = parser.parse_args() if len(args) != 0: parser.error("Found some unrecognized arguments on the command line.") if options.version: print '%s %s' % (phoshare.phoshare_version.PHOSHARE_VERSION, phoshare.phoshare_version.PHOSHARE_BUILD) return 1 if options.iptc > 0 and not exiftool.check_exif_tool(): print >> sys.stderr, ( "Exiftool is needed for the --itpc or --iptcall" + " options.") return 1 if options.size and options.link: parser.error("Cannot use --size and --link together.") if not options.iphoto: parser.error("Need to specify the iPhoto library with the --iphoto " "option.") if options.export or options.picasaweb or options.checkalbumsize: if not (options.albums or options.events or options.smarts or options.facealbums): parser.error("Need to specify at least one event, album, or smart " "album for exporting, using the -e, -a, or -s " "options.") else: parser.error("No action specified. Use --export to export from your " "iPhoto library.") if options.picasaweb: if options.picasapassword: google_password = options.picasapassword else: google_password = getpass.getpass('Google password for %s: ' % options.picasaweb) logging_handler = logging.StreamHandler() logging_handler.setLevel( logging.DEBUG if options.verbose else logging.INFO) _logger.addHandler(logging_handler) album_xml_file = iphotodata.get_album_xmlfile( su.expand_home_folder(options.iphoto)) data = iphotodata.get_iphoto_data(album_xml_file) if data.aperture: if options.originals: data.load_aperture_originals() check_aperture_mode(options, parser) options.aperture = data.aperture options.foldertemplate = unicode(options.foldertemplate) options.nametemplate = unicode(options.nametemplate) options.captiontemplate = unicode(options.captiontemplate) if options.checkalbumsize: data.checkalbumsizes(int(options.checkalbumsize)) if options.export: album = ExportLibrary(su.expand_home_folder(options.export)) export_iphoto(album, data, options.exclude, options) if options.picasaweb: albums = picasaweb.PicasaAlbums(options.picasaweb, google_password) export_iphoto(albums, data, options.exclude, options)
def main(): """main routine for phoshare.""" parser = get_option_parser() (options, args) = parser.parse_args() if len(args) != 0: parser.error("Found some unrecognized arguments on the command line.") if options.version: print '%s %s' % (phoshare.phoshare_version.PHOSHARE_VERSION, phoshare.phoshare_version.PHOSHARE_BUILD) return 1 if options.iptc > 0 and not exiftool.check_exif_tool(): print >> sys.stderr, ("Exiftool is needed for the --itpc or --iptcall" + " options.") return 1 if options.size and options.link: parser.error("Cannot use --size and --link together.") if not options.iphoto: parser.error("Need to specify the iPhoto library with the --iphoto " "option.") if options.export or options.picasaweb or options.checkalbumsize: if not (options.albums or options.events or options.smarts or options.facealbums): parser.error("Need to specify at least one event, album, or smart " "album for exporting, using the -e, -a, or -s " "options.") else: parser.error("No action specified. Use --export to export from your " "iPhoto library.") if options.picasaweb: if options.picasapassword: google_password = options.picasapassword else: google_password = getpass.getpass('Google password for %s: ' % options.picasaweb) logging_handler = logging.StreamHandler() logging_handler.setLevel(logging.DEBUG if options.verbose else logging.INFO) _logger.addHandler(logging_handler) album_xml_file = iphotodata.get_album_xmlfile( su.expand_home_folder(options.iphoto)) data = iphotodata.get_iphoto_data(album_xml_file) if data.aperture: if options.originals: data.load_aperture_originals() check_aperture_mode(options, parser) options.aperture = data.aperture options.foldertemplate = unicode(options.foldertemplate) options.nametemplate = unicode(options.nametemplate) options.captiontemplate = unicode(options.captiontemplate) if options.checkalbumsize: data.checkalbumsizes(int(options.checkalbumsize)) if options.export: album = ExportLibrary(su.expand_home_folder(options.export)) export_iphoto(album, data, options.exclude, options) if options.picasaweb: albums = picasaweb.PicasaAlbums(options.picasaweb, google_password) export_iphoto(albums, data, options.exclude, options)
def run_phoshare(cmd_args): """main routine for phoshare.""" parser = get_option_parser() (options, args) = parser.parse_args(cmd_args) if len(args) != 0: parser.error("Found some unrecognized arguments on the command line.") if options.version: print '%s %s' % (phoshare.phoshare_version.PHOSHARE_VERSION, phoshare.phoshare_version.PHOSHARE_BUILD) return 1 if options.iptc > 0 and not exiftool.check_exif_tool(): print >> sys.stderr, ("Exiftool is needed for the --itpc or --iptcall" + " options.") return 1 if options.size and options.link: parser.error("Cannot use --size and --link together.") if not options.iphoto: parser.error("Need to specify the iPhoto library with the --iphoto " "option.") if options.export or options.picasaweb or options.checkalbumsize: if not (options.albums or options.events or options.smarts or options.facealbums): parser.error("Need to specify at least one event, album, or smart " "album for exporting, using the -e, -a, or -s " "options.") else: parser.error("No action specified. Use --export to export from your " "iPhoto library.") if options.picasaweb: if options.picasapassword: google_password = options.picasapassword else: google_password = getpass.getpass('Google password for %s: ' % options.picasaweb) if options.ratings: options.ratings = [int(r) for r in options.ratings.split(",")] if options.reverse: if not options.dryrun: su.pout(u"Turning on dryrun mode because of --reverse option.") options.dryrun = True logging_handler = logging.StreamHandler() logging_handler.setLevel(logging.DEBUG if options.verbose else logging.INFO) _logger.addHandler(logging_handler) album_xml_file = iphotodata.get_album_xmlfile( su.expand_home_folder(options.iphoto)) if options.omitdatabasefile: album_sql_file="" else: album_sql_file = iphotodata.get_album_sqlfile( su.expand_home_folder(options.iphoto)) data = iphotodata.get_iphoto_data(album_xml_file, album_sql_file, ratings=options.ratings, verbose=options.verbose, aperture=options.aperture) if options.originals and options.export: data.load_aperture_originals() options.aperture = data.aperture and not data.aperture_data options.foldertemplate = unicode(options.foldertemplate) options.nametemplate = unicode(options.nametemplate) options.captiontemplate = unicode(options.captiontemplate) if options.checkalbumsize: data.checkalbumsizes(int(options.checkalbumsize)) if options.export: album = ExportLibrary(su.expand_home_folder(options.export)) export_iphoto(album, data, options.exclude, options) if options.picasaweb: try: import phoshare.picasaweb as picasaweb albums = picasaweb.PicasaAlbums(options.picasaweb, google_password) export_iphoto(albums, data, options.exclude, options) except ImportError: su.perr('Sorry, this version of Phoshare does not support uploading to PicasaWeb.')
def run_phoshare(cmd_args): """main routine for phoshare.""" parser = get_option_parser() (options, args) = parser.parse_args(cmd_args) if len(args) != 0: parser.error("Found some unrecognized arguments on the command line.") if options.version: print '%s %s' % (phoshare.phoshare_version.PHOSHARE_VERSION, phoshare.phoshare_version.PHOSHARE_BUILD) return 1 if options.iptc > 0 and not exiftool.check_exif_tool(): print >> sys.stderr, ("Exiftool is needed for the --itpc or --iptcall" + " options.") return 1 if options.size and options.link: parser.error("Cannot use --size and --link together.") if not options.iphoto: parser.error("Need to specify the iPhoto library with the --iphoto " "option.") if options.export or options.picasaweb or options.checkalbumsize: if not (options.albums or options.events or options.smarts or options.facealbums): parser.error("Need to specify at least one event, album, or smart " "album for exporting, using the -e, -a, or -s " "options.") else: parser.error("No action specified. Use --export to export from your " "iPhoto library.") if options.picasaweb: if options.picasapassword: google_password = options.picasapassword else: google_password = getpass.getpass('Google password for %s: ' % options.picasaweb) if options.ratings: options.ratings = [int(r) for r in options.ratings.split(",")] if options.reverse: if not options.dryrun: su.pout(u"Turning on dryrun mode because of --reverse option.") options.dryrun = True logging_handler = logging.StreamHandler() logging_handler.setLevel(logging.DEBUG if options.verbose else logging.INFO) _logger.addHandler(logging_handler) album_xml_file = iphotodata.get_album_xmlfile( su.expand_home_folder(options.iphoto)) album_sql_file = iphotodata.get_album_sqlfile( su.expand_home_folder(options.iphoto)) data = iphotodata.get_iphoto_data(album_xml_file, album_sql_file, ratings=options.ratings, verbose=options.verbose, aperture=options.aperture) if options.originals and options.export: data.load_aperture_originals() options.aperture = data.aperture and not data.aperture_data options.foldertemplate = unicode(options.foldertemplate) options.nametemplate = unicode(options.nametemplate) options.captiontemplate = unicode(options.captiontemplate) if options.checkalbumsize: data.checkalbumsizes(int(options.checkalbumsize)) if options.export: album = ExportLibrary(su.expand_home_folder(options.export)) export_iphoto(album, data, options.exclude, options) if options.picasaweb: try: import phoshare.picasaweb as picasaweb albums = picasaweb.PicasaAlbums(options.picasaweb, google_password) export_iphoto(albums, data, options.exclude, options) except ImportError: su.perr('Sorry, this version of Phoshare does not support uploading to PicasaWeb.')