Example #1
0
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'])
Example #2
0
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}")
Example #3
0
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)
Example #4
0
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)
Example #5
0
def login(ctx) -> None:
    """ Google認証のみを行う
    """
    logger = create_logger()
    google_oauth2.get_authorized_service(ctx.obj['client'],
                                         ctx.obj['credential'], logger)