#!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib, os, sys import PyZenity as z try: import pynotify except ImportError: uyar = False else: uyar = True sayac = 0 # Debug icin, silinebilir # sys.stderr = open('/home/osa1/Desktop/stderr.txt', 'w') # sys.stdout = open('/home/osa1/Desktop/stdout.txt', 'w') ftp = ftplib.FTP('ftp sunucunuz') ftp.login(user='kullanici adiniz', passwd='sifreniz') yerler = [f.strip() for f in os.environ['NAUTILUS_SCRIPT_SELECTED_URIS'].split('file://') if len(f) > 0] def gonder(local, baslangic='/media'): # upload edilecek klasor global sayac if os.path.isdir(local): basename = os.path.basename(local) sunucuKlasor = '%s/%s' % (baslangic, basename) try: ftp.mkd(sunucuKlasor) except ftplib.error_perm: pass for dosya in os.listdir(local): localYeni = '%s/%s' % (local, dosya) gonder(localYeni, baslangic=sunucuKlasor) else: dosyalar = ftp.nlst(baslangic) if (z.Question(u"Dosya zaten var, üzerine yazayım mı?"): if os.path.basename(local) in baslangic: ftp.delete(os.path.basename(local)) else: local = "_" + local ftp.storbinary('STOR %s/%s' % (baslangic, os.path.basename(local)), open(local, 'rb')) sayac += 1 if uyar: n = pynotify.Notification("Upload basladi", "%s dosya ve/veya klasor" % len(yerler)) n.show() for yer in yerler: gonder(yer) if uyar: n = pynotify.Notification("Upload bitti", "%s dosya upload edildi" % sayac, "gnome-netstatus-txrx") n.show() ftp.close()