def upload(ctx, path: str, album: str, id: bool) -> None: """ 画像をアップロードする """ logger = create_logger() service = google_oauth2.get_authorized_service(ctx.obj['client'], ctx.obj['credential'], logger) client = google_photos.GooglePhots(service) # アルバムに追加する場合は、アルバムIDを探索する。 # ただし、追加可能なアルバムは一つとするため、見つからない、または複数見つかる場合は、エラーとする。 album_id = '' if album is not None: target = 'id' if id else 'title' album_list = client.get_album_list() albums = [ item for item in album_list['albums'] if item[target] == album ] if len(albums) == 0: logger.error(f"cannot find album: {album}, id flag = {id}") return if len(albums) > 1: logger.error( f"find multiple albums, please identify only one album. album = {album}, id flag = {id}" ) map(lambda x: logger.error(f"album: {x}"), albums) return album_id = albums[0]['id'] # 画像のアップロード response = client.upload_image(path, album_id) logger.info(response) logger.info(response['newMediaItemResults'][0]['status'])
def new(ctx, name: str) -> None: """ 新規アルバムを作成する """ logger = create_logger() service = google_oauth2.get_authorized_service(ctx.obj['client'], ctx.obj['credential'], logger) client = google_photos.GooglePhots(service) album_id = client.create_new_album(name) logger.info(f"album id: {album_id}")
def list(ctx) -> None: """ アルバムリストを取得する """ logger = create_logger() service = google_oauth2.get_authorized_service(ctx.obj['client'], ctx.obj['credential'], logger) client = google_photos.GooglePhots(service) album_list = client.get_album_list() for album in album_list['albums']: logger.info(album)
def search(ctx, name: str, id: int) -> None: """ 既存のアルバムを検索する """ logger = create_logger() service = google_oauth2.get_authorized_service(ctx.obj['client'], ctx.obj['credential'], logger) client = google_photos.GooglePhots(service) target = 'id' if id else 'title' album_list = client.get_album_list() logger.info('-' * 5 + ' albums ' + '-' * 5) for album in album_list['albums']: if not album[target] == name: continue logger.info(f"album list: {album}") logger.info('-' * 10)
def login(ctx) -> None: """ Google認証のみを行う """ logger = create_logger() google_oauth2.get_authorized_service(ctx.obj['client'], ctx.obj['credential'], logger)