mirror of https://github.com/saimn/sigal.git
4 changed files with 5 additions and 138 deletions
@ -1,108 +0,0 @@ |
|||||||
#! /usr/bin/env python2 |
|
||||||
# -*- coding:utf-8 -*- |
|
||||||
|
|
||||||
# sigal - Piwigo gallery generator |
|
||||||
# Copyright (C) 2009, 2011 - 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/ |
|
||||||
|
|
||||||
"""Upload images by FTP |
|
||||||
""" |
|
||||||
|
|
||||||
import os |
|
||||||
import getpass |
|
||||||
import ftplib |
|
||||||
|
|
||||||
class FtpUpload: |
|
||||||
"Upload a list of files by FTP" |
|
||||||
|
|
||||||
# files excluded when listing directories' content |
|
||||||
FILE_EXCLUDE = ["index.php", ".cvsignore"] |
|
||||||
|
|
||||||
def __init__(self, host, user, basedir): |
|
||||||
print "Connect to %s ..." % host |
|
||||||
password = getpass.getpass() |
|
||||||
self.ftp = ftplib.FTP(host, user, password) |
|
||||||
self.ftp.cwd(basedir) |
|
||||||
|
|
||||||
# FIXME: galname |
|
||||||
def upload(self, imgfilelist, galname, thumb_dir, bigimg_dir=None): |
|
||||||
"Upload images to a FTP server" |
|
||||||
|
|
||||||
print "\nChoose the category in which your gallery will be uploaded:" |
|
||||||
print "- enter a number to go in a sub-category" |
|
||||||
print "- choose '.' for uploading in the current directory" |
|
||||||
|
|
||||||
# choose upload dir |
|
||||||
while 1: |
|
||||||
i = 1 |
|
||||||
ftpdir = [f for f in self.ftp.nlst() if f not in self.FILE_EXCLUDE] |
|
||||||
print "\n" |
|
||||||
for ldir in ftpdir: |
|
||||||
print "%i: %s" % (i, ldir) |
|
||||||
i += 1 |
|
||||||
|
|
||||||
try: |
|
||||||
choice = int(raw_input("Enter directory number: ")) - 1 |
|
||||||
if ftpdir[choice] == '.': |
|
||||||
break |
|
||||||
self.ftp.cwd(ftpdir[choice]) |
|
||||||
except: |
|
||||||
print "Error: invalid choice" |
|
||||||
|
|
||||||
print "Upload files to %s directory:" % galname |
|
||||||
try: |
|
||||||
self.ftp.mkd(galname) |
|
||||||
except: |
|
||||||
choice = raw_input("Directory exist, continue ? (y/[n]) ") |
|
||||||
if choice != 'y': |
|
||||||
return |
|
||||||
|
|
||||||
# upload images |
|
||||||
self.ftp.cwd(galname) |
|
||||||
self.upload_files(imgfilelist[0]) |
|
||||||
|
|
||||||
# upload thumbnails |
|
||||||
try: |
|
||||||
self.ftp.mkd(thumb_dir) |
|
||||||
except: |
|
||||||
pass |
|
||||||
self.ftp.cwd(thumb_dir) |
|
||||||
self.upload_files(imgfilelist[1]) |
|
||||||
|
|
||||||
# upload big images |
|
||||||
if bigimg_dir: |
|
||||||
self.ftp.cwd('..') |
|
||||||
try: |
|
||||||
self.ftp.mkd(bigimg_dir) |
|
||||||
except: |
|
||||||
pass |
|
||||||
self.ftp.cwd(bigimg_dir) |
|
||||||
self.upload_files(imgfilelist[2]) |
|
||||||
|
|
||||||
def upload_files(self, imgfilelist): |
|
||||||
"Upload list of files in the current working directory of ftp" |
|
||||||
for i in imgfilelist: |
|
||||||
print "Upload %s ..." % os.path.basename(i) |
|
||||||
ofile = open(i, 'rb') |
|
||||||
try: |
|
||||||
self.ftp.storbinary('STOR '+os.path.basename(i), ofile) |
|
||||||
except: |
|
||||||
print "Tranfer error !" |
|
||||||
ofile.close() |
|
||||||
|
|
||||||
def close(self): |
|
||||||
"Close FTP connection" |
|
||||||
self.ftp.quit() |
|
||||||
|
|
||||||
Loading…
Reference in new issue