from galleryremote import Gallery import sys import os import urllib galleryurl = sys.argv[1] outputdir = sys.argv[2] print galleryurl g = Gallery(galleryurl, 2) albums = g.fetch_albums() os.mkdir(outputdir) open(outputdir + "/albums.info", "w").write(simplejson.dumps(albums, indent=4)) for (album, albuminfo) in albums.items(): print " *** Processing album %s\n" % album images = g.fetch_album_images(album) albumpath = "%s/%s" % (outputdir, album) os.mkdir(albumpath) open("%s/images.info" % albumpath, "w").write(simplejson.dumps(images, indent=4)) for image in images: print "Downloading image " + image['name'] urllib.urlretrieve(galleryurl + "/main.php?g2_view=core%3ADownloadItem&g2_itemId=" + image['name'], albumpath + "/" + image['name'] + ".data")
our_album = conf.get("gallery2", "albumname").lower() candidate_albums = [k for k, v in albums.iteritems() if v["title"].lower() == our_album] if not candidate_albums: logger.critical("Couldn't find a %s album!", our_album) sys.exit(1) album_name = candidate_albums[0] if args: to_work = args else: file_re = re.compile(conf.get("directories", "backup_regex")) candidates = set(f.split(".")[0] for f in os.listdir(conf.get("directories", "source")) if re.match(file_re, f)) logger.debug("Found %d candidates", len(candidates)) finished = set(img["title"].replace(".png", "") for img in g.fetch_album_images(album_name)) logger.debug("Found %d finished images", len(finished)) to_work = sorted(list(candidates - finished)) if len(to_work) == 0: logger.info("All caught up, nothing to do!") sys.exit(0) logger.info("Have %d maps to work on: %s", len(to_work), ", ".join(to_work)) renderer = MCRenderer(conf, g, album_name) if opts.render_only: method = renderer.render_image else: method = renderer.upload_image