#!/usr/bin/python3 import os import random from piwigo import * import urllib.request as urllib2 import urllib.parse as urlparse import math import filecmp def download_file(url, dest=None, destname=None): """ Download and save a file specified by url to dest directory, """ u = urllib2.urlopen(url) isDuplicate = False scheme, netloc, path, query, fragment = urlparse.urlsplit(url) f1="" if destname == None: filename = os.path.basename(path) else: filename = destname if not filename: filename = 'downloaded.file' if dest: filename = os.path.join(dest, filename) if os.path.exists(filename): print("FileExist"); isDuplicate = True f1=filename tempf1 = os.path.splitext(os.path.basename(f1))[0] filename=os.path.join(dest,"dup",tempf1+"_"+os.path.basename(path)) #return;#raise NameError('duplicat') with open(filename, 'wb') as f: meta = u.info() meta_func = meta.getheaders if hasattr(meta, 'getheaders') else meta.get_all meta_length = meta_func("Content-Length") file_size = None if meta_length: file_size = int(meta_length[0]) print("Downloading: {0} filename {1} Bytes: {2}".format(url, filename, file_size)) file_size_dl = 0 block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break file_size_dl += len(buffer) f.write(buffer) status = "{0:16}".format(file_size_dl) if file_size: status += " [{0:6.2f}%]".format(file_size_dl * 100 / file_size) status += chr(13) print(status, end="") print() if(isDuplicate == True): if(filecmp.cmp(f1,filename)): print ("samefile:",f1,":",filename) os.remove(filename) return filename mySite = Piwigo('https://pho.flywithu.com/') mySite.pwg.session.login(username="flywithu", password="1q2w3e4r5t") #categories=mySite.pwg.categories.getList(recursive="true")['categories'] #for cat in categories: #print(cat) imagesinfo=mySite.pwg.categories.getImages(recursive="true")['paging'] #print(imagesinfo['count']) total=imagesinfo['count'] perpage = 300 pagecount = math.ceil(int(total)/perpage) print ("pagecount :",pagecount) for x in range(pagecount): print("pagecount:",x) images=mySite.pwg.categories.getImages(recursive="true",per_page=perpage,page=x)['images'] for image in images: print(image['element_url']) download_file(image['element_url'],"data",image['file']) mySite.pwg.session.logout()