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
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()