def response_media_items_by_filter(request_body: dict):
    try:
        response_search = service.mediaItems().search(
            body=request_body).execute()
        lstMediaItems = response_search.get('mediaItems')
        nextPageToken = response_search.get('nextPageToken')

        while nextPageToken:
            request_body['pageToken'] = nextPageToken
            response_search = service.mediaItems().search(
                body=request_body).execute()

            if not response_search.get('mediaItem') is None:
                lstMediaItems.extend(response_search.get('mediaItems'))
                nextPageToken = response_search.get('nextPageToken')
            else:
                nextPageToken = ''
        return lstMediaItems
    except Exception as e:
        print(e)
        return None
from pprint import pprint
from init_photo_service import service
import pandas as pd
"""
search method (by album id)
"""
response_albums_list = service.albums().list().execute()
albums_list = response_albums_list.get('albums')

album_id = next(filter(lambda x: "Teste Frame" in x['title'],
                       albums_list))['id']

request_body = {'albumId': album_id, 'pageSize': 25}

response_search = service.mediaItems().search(body=request_body).execute()

lstMediaItems = response_search.get('mediaItems')
nextPageToken = response_search.get('nextPageToken')

while nextPageToken:
    request_body['pageToken'] = nextPageToken

    response_search = service.mediaItems().search(body=request_body).execute()
    lstMediaItems.extend(response_search.get('mediaItems'))
    nextPageToken = response_search.get('nextPageToken')

df_search_result = pd.DataFrame(lstMediaItems)
print(df_search_result)


def response_media_items_by_filter(request_body: dict):
from pprint import pprint
from init_photo_service import service
import pandas as pd


response = service.mediaItems().list(pageSize=25).execute()

lst_medias = response.get('mediaItems')
nextPageToken = response.get('nextPageToken')

while nextPageToken:
    response = service.mediaItems().list(
        pageSize=25,
        pageToken=nextPageToken
    ).execute()

    lst_medias.extend(response.get('mediaItems'))
    nextPageToken = response.get('nextPageToken')

# on df_media_items we get all the photos available at account
df_media_items = pd.DataFrame(lst_medias)

"""
batchGet method
"""
media_ids = df_media_items['id'][4922:4923].to_list()
response = service.mediaItems().batchGet(mediaItemIds=media_ids).execute()
print(pd.DataFrame(response.get('mediaItemResults'))['mediaItem'].apply(pd.Series))
from pprint import pprint
from init_photo_service import service
import pandas as pd

response = service.mediaItems().list(pageSize=25).execute()

lst_medias = response.get('mediaItems')
nextPageToken = response.get('nextPageToken')

while nextPageToken:
    response = service.mediaItems().list(pageSize=25,
                                         pageToken=nextPageToken).execute()

    lst_medias.extend(response.get('mediaItems'))
    nextPageToken = response.get('nextPageToken')

# on df_media_items we get all the photos available at account
df_media_items = pd.DataFrame(lst_medias)
"""
get method
"""
media_id = df_media_items['id'][4923]  # only media ID
response = service.mediaItems().get(
    mediaItemId=media_id).execute()  # complete media item

print(media_id)
print(response)
예제 #5
0
lstAlbums = response.get('albums')
nextPageToken = response.get('nextPageToken')

while nextPageToken:
    response = service.albums.list(pageSize=50,
                                   excludeNonAppCreatedData=False,
                                   pageToken=nextPageToken)
    lstAlbums.append(response.get('albums'))
    nextPageToken = response.get('nextPageToken')

df_albums = pd.DataFrame(lstAlbums)

album_id = df_albums['id'][2]

response = service.mediaItems().list(pageSize=25).execute()

lst_medias = response.get('mediaItems')
nextPageToken = response.get('nextPageToken')

while nextPageToken:
    response = service.mediaItems().list(pageSize=25,
                                         pageToken=nextPageToken).execute()

    lst_medias.extend(response.get('mediaItems'))
    nextPageToken = response.get('nextPageToken')

df_media_items = pd.DataFrame(lst_medias)
media_items_ids = df_media_items['id'][:3].to_list()
# only photos uploaded using API could be move
pd.set_option('expand_frame_repr', True)

myAblums = service.albums().list().execute()
myAblums_list = myAblums.get('albums')
dfAlbums = pd.DataFrame(myAblums_list)
Teste_Frame_album_id = dfAlbums[
    dfAlbums['title'] == 'Teste Frame']['id'].to_string(index=False).strip()


def download_file(url: str, destination_folder: str, file_name: str):
    response = requests.get(url)
    if response.status_code == 200:
        print('Downloading file {0}'.format(file_name))
        with open(os.path.join(destination_folder, file_name), 'wb') as f:
            f.write(response.content)
            f.close()


media_files = service.mediaItems().search(body={
    'albumId': Teste_Frame_album_id
}).execute()['mediaItems']

destination_folder = r'/home/pi/Documents/Photos'

for media_file in media_files:
    file_name = media_file['filename']
    download_url = media_file['baseUrl'] + '=d'
    download_file(download_url, destination_folder, file_name)

#home/pi/Documents/Photos
img = open(image_file, 'rb').read()
response = requests.post(upload_url, data=img, headers=headers)
print(response)  # should be 200
print(response.content)  # should be binário token to file

request_body = {
    'newMediaItems': [{
        'description': 'Portinari',
        'simpleMediaItem': {
            'uploadToken': response.content.decode('utf-8')
        }
    }]
}

upload_response = service.mediaItems().batchCreate(body=request_body).execute()
print(upload_response)  # should be all media item information
message = upload_response.get('newMediaItemResults')[0].get('status')
print(message)  # should be sucess
"""
# Função para batch upload funcionando corretamente

def upload_image(image_path, upload_file_name, token):
    headers = {
        'Authorization': 'Bearer ' + token.token,
        'Content-type': 'application/octet-stream',
        'X-Goog-Upload-Protocol': 'raw',
        'X-Goog-File-Name': upload_file_name
    }    
 
    img = open(image_path, 'rb').read()