Example #1
0
def _getAlbums(conn, smugmug, lock):
    albums = smugmug.albums_get(Extras="LastUpdated")
    
    for album in albums["Albums"]:
        myLogger.debug(album)
        title = album["Title"]
    
        cat = None
        catid = None
        subCat = None
        subCatid = None
        try:
            cat = album["Category"]["Name"]
            catid = album["Category"]["id"]
        except KeyError:
            cat = None
            catid = None
        try:
            subCat = album["SubCategory"]["Name"]
            subCatid = album["SubCategory"]["id"]
        except KeyError:
            subCat = None
            subCatid = None
        lock.acquire()
        db.addSmugAlbum(conn,cat, catid, subCat, subCatid, title, datetime.datetime.strptime(album["LastUpdated"],'%Y-%m-%d %H:%M:%S'), album["Key"], album["id"])
        lock.release() 
    return albums
Example #2
0
def createMissingAlbums(configobj, smugmug, lock):
    """
    Will create any albums on SmugMug that have been found locally, but not on SmugMug.
    Currently uses the SmugMug defaults for the album properties.
    """
    myLogger.debug('createMissingAlbums - parent process: %s  process id: %s', os.getppid(), os.getpid())
    conn = db.getConn(configobj)
    sync = datetime.now()
    albums = db.missingSmugMugAlbums(conn)
    for album in albums:
        if album[2] == None: #no category or subcategory
            result = smugmug.albums_create(Title=album[0])
        elif album[4] == None: # category but no subcategory
            result = smugmug.albums_create(Title=album[0], CategoryID=album[2])
        else: #has category and subcategory
            result = smugmug.albums_create(Title=album[0], CategoryID=album[2],SubCategoryID=album[4])
        id = result["Album"]["id"]
        key = result["Album"]["Key"]
        myLogger.debug("Album created: '%s' and id '%s' and key '%s'", album[0], id, key)
        lock.acquire()
        db.addSmugAlbum(conn,album[1], album[2], album[3], album[4], album[0], sync, key, id)
        db.insertAlbumLog(conn, id, album[0], album[1], album[3], sync)
        lock.release()