mirror of
https://github.com/googlefonts/noto-emoji.git
synced 2025-07-08 21:36:59 +00:00
add requirements
This commit is contained in:
parent
33264cd163
commit
23bccfc88c
2 changed files with 79 additions and 38 deletions
|
@ -4,6 +4,7 @@ from __future__ import print_function
|
||||||
import pickle
|
import pickle
|
||||||
import os.path
|
import os.path
|
||||||
import io
|
import io
|
||||||
|
import fire
|
||||||
from googleapiclient.discovery import build
|
from googleapiclient.discovery import build
|
||||||
from google_auth_oauthlib.flow import InstalledAppFlow
|
from google_auth_oauthlib.flow import InstalledAppFlow
|
||||||
from google.auth.transport.requests import Request
|
from google.auth.transport.requests import Request
|
||||||
|
@ -14,50 +15,21 @@ SCOPES = ["https://www.googleapis.com/auth/drive"]
|
||||||
|
|
||||||
|
|
||||||
def main(folder_name, output_dir):
|
def main(folder_name, output_dir):
|
||||||
"""Shows basic usage of the Drive v3 API.
|
|
||||||
Prints the names and ids of the first 10 files the user has access to.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Create a token.pickle file to store the users session
|
# Create a token.pickle file to store the users session
|
||||||
service = get_service()
|
service = get_service()
|
||||||
|
|
||||||
# Get the folder instance
|
# Get the folder instance
|
||||||
folder = get_folder_id(service, folder_name)
|
folder_id = get_folder_id(service, folder_name)
|
||||||
|
|
||||||
# Create output dir
|
# Create output dir
|
||||||
output_dir = create_dir("downloaded_png")
|
output_dir = create_dir(output_dir)
|
||||||
|
|
||||||
|
# Get the file IDs
|
||||||
|
file_list = get_file_list(service, folder_id)
|
||||||
|
|
||||||
|
# Fetch the files from the drive
|
||||||
# Call the Drive v3 API
|
download_files(service, file_list, output_dir)
|
||||||
results = (
|
|
||||||
service.files()
|
|
||||||
.list(
|
|
||||||
pageSize=1000,
|
|
||||||
fields="nextPageToken, files(id, name)",
|
|
||||||
q=f"'{folder_id}' in parents",
|
|
||||||
)
|
|
||||||
.execute()
|
|
||||||
)
|
|
||||||
items = results.get("files", [])
|
|
||||||
|
|
||||||
if not items:
|
|
||||||
print("No files found.")
|
|
||||||
else:
|
|
||||||
print("Downloading files")
|
|
||||||
for item in items:
|
|
||||||
print("Downloading: {0} ({1})".format(item["name"], item["id"]))
|
|
||||||
file_id = item["id"]
|
|
||||||
request = service.files().get_media(fileId=file_id)
|
|
||||||
fh = io.BytesIO()
|
|
||||||
downloader = MediaIoBaseDownload(fh, request)
|
|
||||||
done = False
|
|
||||||
while done is False:
|
|
||||||
status, done = downloader.next_chunk()
|
|
||||||
|
|
||||||
filelocation = f"downloaded_pngs/{item['name']}"
|
|
||||||
with open(filelocation, "wb") as f:
|
|
||||||
f.write(fh.getbuffer())
|
|
||||||
|
|
||||||
|
|
||||||
def get_service():
|
def get_service():
|
||||||
|
@ -111,11 +83,56 @@ def create_dir(dir_name):
|
||||||
return folder
|
return folder
|
||||||
|
|
||||||
|
|
||||||
|
def get_file_list(service, folder_id):
|
||||||
|
|
||||||
def download_files():
|
result = []
|
||||||
|
page_token = None
|
||||||
|
while True:
|
||||||
|
files = service.files().list(
|
||||||
|
q=f"'{folder_id}' in parents",
|
||||||
|
fields='nextPageToken, files(id, name, mimeType)',
|
||||||
|
pageToken=page_token,
|
||||||
|
pageSize=1000).execute()
|
||||||
|
|
||||||
|
result.extend(files['files'])
|
||||||
|
|
||||||
|
page_token = files.get("nextPageToken")
|
||||||
|
|
||||||
|
if not page_token:
|
||||||
|
break
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def download_files(service, file_list, output_dir):
|
||||||
|
|
||||||
|
print("Downloading files")
|
||||||
|
for file in file_list:
|
||||||
|
file_id = file['id']
|
||||||
|
filename = file['name']
|
||||||
|
|
||||||
|
request = service.files().get_media(fileId=file_id)
|
||||||
|
fh = io.BytesIO()
|
||||||
|
downloader = MediaIoBaseDownload(fh, request)
|
||||||
|
done = False
|
||||||
|
while done is False:
|
||||||
|
status, done = downloader.next_chunk()
|
||||||
|
|
||||||
|
filelocation = f"{output_dir}/{filename['name']}"
|
||||||
|
with open(filelocation, "wb") as f:
|
||||||
|
f.write(fh.getbuffer())
|
||||||
|
|
||||||
|
print(f"Downloading: {filename} ({file_id})")
|
||||||
|
request = service.files().get_media(fileId=file_id)
|
||||||
|
fh = io.BytesIO()
|
||||||
|
downloader = MediaIoBaseDownload(fh, request)
|
||||||
|
done = False
|
||||||
|
while done is False:
|
||||||
|
status, done = downloader.next_chunk()
|
||||||
|
|
||||||
|
filelocation = f"downloaded_pngs/{filename}"
|
||||||
|
with open(filelocation, "wb") as f:
|
||||||
|
f.write(fh.getbuffer())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
fire.Fire()
|
||||||
|
|
24
requirements.txt
Normal file
24
requirements.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
cachetools==4.1.0
|
||||||
|
certifi==2020.4.5.1
|
||||||
|
chardet==3.0.4
|
||||||
|
fire==0.3.1
|
||||||
|
google-api-core==1.17.0
|
||||||
|
google-api-python-client==1.8.0
|
||||||
|
google-auth==1.14.0
|
||||||
|
google-auth-httplib2==0.0.3
|
||||||
|
google-auth-oauthlib==0.4.1
|
||||||
|
googleapis-common-protos==1.51.0
|
||||||
|
httplib2==0.17.2
|
||||||
|
idna==2.9
|
||||||
|
oauthlib==3.1.0
|
||||||
|
protobuf==3.11.3
|
||||||
|
pyasn1==0.4.8
|
||||||
|
pyasn1-modules==0.2.8
|
||||||
|
pytz==2019.3
|
||||||
|
requests==2.23.0
|
||||||
|
requests-oauthlib==1.3.0
|
||||||
|
rsa==4.0
|
||||||
|
six==1.14.0
|
||||||
|
termcolor==1.1.0
|
||||||
|
uritemplate==3.0.1
|
||||||
|
urllib3==1.25.8
|
Loading…
Add table
Reference in a new issue