#! /usr/bin/env python # -*- coding:utf-8 -*- # pywiUpload - Piwigo gallery generator # Copyright (C) 2009 - saimon.org # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; If not, see http://www.gnu.org/licenses/ """Prepare and upload a gallery of images for Piwigo This script resize images, create thumbnails with some options (rename images, squared thumbs, ...), and upload images to a FTP server. """ __author__ = "Saimon (contact at saimon dot org)" __version__ = "0.8" __date__ = "20100722" __copyright__ = "Copyright (C) 2009 - saimon.org" __license__ = "GPL" import os import sys from configobj import ConfigObj from optparse import OptionParser from lib.ftp import FtpUpload from lib.image import Gallery def read_params(config_file): "Read params from a config file" params = ConfigObj(config_file,file_error=True) # convert types params["im_width"] = int(params["im_width"]) params["im_height"] = int(params["im_height"]) params["thumb_width"] = int(params["thumb_width"]) params["thumb_height"] = int(params["thumb_height"]) params["bigimg"] = int(params["bigimg"]) params["squarethumb"] = int(params["squarethumb"]) params["jpgquality"] = int(params["jpgquality"]) params["exif"] = int(params["exif"]) params["copyright"] = int(params["copyright"]) return params def main(): "main program" # command line options usage = "usage: %prog [options]" version = "version %s, %s" % (__version__, __date__) parser = OptionParser(usage=usage, version="%prog "+version) parser.add_option("-c", "--config", dest="config", help="specify an alternative config file") parser.add_option("-i", "--imgpath", dest="imgpath", help="specify images path") (options, args) = parser.parse_args() # read params from config file config_file = options.config if options.config \ else os.path.join(sys.path[0], 'pywiUpload.conf') print "Reading parameters ..." params = read_params(config_file) # create gallery gallery = Gallery(params) path = options.imgpath if options.imgpath else os.getcwd() (galleryname, out_filelist) = gallery.create_gallery(path) # upload if raw_input("Upload images to your FTP server ? (y/[n]) ") == 'y': ftp = FtpUpload(params["host"], params["user"], \ params["piwigo_dir"] + '/galleries') if params["bigimg"]: ftp.upload(out_filelist, galleryname, params["thumb_dir"], params["bigimg_dir"]) else: ftp.upload(out_filelist, galleryname, params["thumb_dir"]) ftp.close() return 0 if __name__ == '__main__': status = main() sys.exit(status)