Esempio n. 1
0
class CloudInterface(object):
    def __init__(self,user,password):
        self.pc = PyCloud(user,password)

    def uploadFiles(self,localpath,folderid):
        pcfilesuploads = []
        results = []
        for dirpath, dirnames, filenames in os.walk(localpath):
            for n in filenames:
                pcfilesuploads.append(localpath+n)
            for f in pcfilesuploads:
                results.append(self.pc.uploadfile(files=[f],folderid=folderid))
        return results

    def cloneFolders(self,localpath,folderid):
        subfolders = os.listdir(localpath)
        folderlist = self.pc.listfolder(folderid=folderid)
        current_folder = {};
        # find current folders to decide which folders we need.
        for value in folderlist['metadata']['contents']:
            if (value.get('isfolder')):
                current_folder[value.get('name','')] = value.get('folderid',0)


        for folder in subfolders:
            if folder not in current_folder:
                # creates new folder and its it to current folder list
                results = self.pc.createfolder(folderid=folderid,name=folder)
                if results['result'] == 0:
                    current_folder[folder] =  results['metadata']['folderid']
        return current_folder;


    def getFiles(self,folder=True,folderid=0):
        ls = self.pc.listfolder(folderid=folderid)
        folders = {}
        for item in ls['metadata']['contents']:
            if folder and (item.get('isfolder')):
                folders[item.get('name','')] = item.get('folderid',0)
            elif folder == False and item.get('isfolder') == False:
                folders[item.get('name','')] = item.get('fileid')
        return folders

    def getConfig(self,folderid=0):
        # this gets configuration file from pcloud
        pass
Esempio n. 2
0
    match = False
    last =  i == folder_split[-1]
    for j in dir_list:
        if j['name'] == i and j['isfolder']:
            folder_walk.append(j['folderid'])
            match = True
            if last:
                Logger.error(__name__, "Ooops new event exists on pCloud")
                sys.exit(0)
            break
    if not match and not last: 
        Logger.error(__name__, "pCloud folder walk: Could not find \"{0}\"".format(i))
        sys.exit(0)

Logger.success(__name__,"New event name doesnt currently exist on pCloud")
r = pcloud.createfolder(path=new_event_pc_path, folderid=folder_walk[-1] )

if r['result'] != 0:
    Logger.error(__name__,"Failed to create pCloud folder - {0}".format(new_event_pc_path))
else:
    Logger.success(__name__,"New pCloud folder created - {0}".format(new_event_pc_path))

#Check photodb doesnt already contain table for new event
r = requests.get("{0}/rest/{1}/1".format( cfg.get("upload__photodb_url"), new_event ))

if r.status_code != 500:
    Logger.error(__name__,"photodb table for new event already exists!")
    sys.exit(0)

Logger.success(__name__,"photodb table for new event doesnt exist")