Skip to content

Commit 47ec99c

Browse files
committed
commit to make git happy
1 parent fb45b76 commit 47ec99c

2 files changed

Lines changed: 45 additions & 36 deletions

File tree

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ dependencies = [
9292
"typing_extensions==4.12.2",
9393
"sympy==1.14.0",
9494
"google-auth==2.39.0",
95-
"google-api-python-client==2.173.0"
96-
"langid",
95+
"google-api-python-client==2.173.0",
9796
"mammoth==1.9.0",
9897
"argostranslate",
9998
"sentence-transformers",
99+
"langid"
100100
]
101101

102102
[project.optional-dependencies]

src/mmore/googledrive/drive_download.py

Lines changed: 43 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class GoogleDriveDownloader:
1515

1616
def __init__(self, ids: List[str]):
1717
self.ids = ids
18-
scopes = ['https://www.googleapis.com/auth/drive.readonly']
19-
18+
scopes = ["https://www.googleapis.com/auth/drive.readonly"]
2019

2120
credentials = service_account.Credentials.from_service_account_file(
22-
self.client_secrets, scopes=scopes)
23-
self.drive_service = build('drive', 'v3', credentials=credentials)
21+
self.client_secrets, scopes=scopes
22+
)
23+
self.drive_service = build("drive", "v3", credentials=credentials)
2424

2525
def download_all(self):
2626
for ggid in self.ids:
@@ -33,11 +33,11 @@ def download_folder_recursive(self, ggid):
3333
return
3434

3535
for item in items:
36-
item_name = item['name']
37-
item_id = item['id']
38-
item_mime = item['mimeType']
36+
item_name = item["name"]
37+
item_id = item["id"]
38+
item_mime = item["mimeType"]
3939

40-
if item_mime == 'application/vnd.google-apps.folder':
40+
if item_mime == "application/vnd.google-apps.folder":
4141
# recurse into subfolder
4242
self.download_folder_recursive(item_id)
4343
else:
@@ -48,60 +48,69 @@ def download_folder_recursive(self, ggid):
4848

4949
def download_file(self, file_id, file_name, mime_type):
5050
# Determine extension and export mime type if Google Docs editors file
51-
if mime_type.startswith('application/vnd.google-apps.'):
52-
if mime_type == 'application/vnd.google-apps.document':
53-
export_mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
54-
ext = '.docx'
55-
elif mime_type == 'application/vnd.google-apps.spreadsheet':
56-
export_mime = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
57-
ext = '.xlsx'
58-
elif mime_type == 'application/vnd.google-apps.presentation':
59-
export_mime = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
60-
ext = '.pptx'
51+
if mime_type.startswith("application/vnd.google-apps."):
52+
if mime_type == "application/vnd.google-apps.document":
53+
export_mime = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
54+
ext = ".docx"
55+
elif mime_type == "application/vnd.google-apps.spreadsheet":
56+
export_mime = (
57+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
58+
)
59+
ext = ".xlsx"
60+
elif mime_type == "application/vnd.google-apps.presentation":
61+
export_mime = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
62+
ext = ".pptx"
6163
else:
62-
print(f"Skipping unsupported Google Docs mime type: {mime_type} for file {file_name}")
64+
print(
65+
f"Skipping unsupported Google Docs mime type: {mime_type} for file {file_name}"
66+
)
6367
return None, None
6468
file_name += ext
65-
request = self.drive_service.files().export_media(fileId=file_id, mimeType=export_mime)
69+
request = self.drive_service.files().export_media(
70+
fileId=file_id, mimeType=export_mime
71+
)
6672
else:
67-
ext = os.path.splitext(file_name)[1].lower() or '.bin'
73+
ext = os.path.splitext(file_name)[1].lower() or ".bin"
6874
request = self.drive_service.files().get_media(fileId=file_id)
6975

7076
# Create folder for this extension
71-
folder_name = ext.lstrip('.') if ext else 'unknown'
77+
folder_name = ext.lstrip(".") if ext else "unknown"
7278
download_dir = os.path.join(self.download_dir, folder_name)
7379
os.makedirs(download_dir, exist_ok=True)
7480
full_path = os.path.join(download_dir, os.path.basename(file_name))
7581

76-
fh = io.FileIO(full_path, 'wb')
82+
fh = io.FileIO(full_path, "wb")
7783
downloader = MediaIoBaseDownload(fh, request)
7884
done = False
7985
while not done:
8086
status, done = downloader.next_chunk()
81-
print(f"Downloading {file_name} into {download_dir}: {int(status.progress() * 100)}%")
87+
print(
88+
f"Downloading {file_name} into {download_dir}: {int(status.progress() * 100)}%"
89+
)
8290
fh.close()
8391
return full_path, folder_name
8492

8593
def list_files_in_folder(self, folder_id):
8694
query = f"'{folder_id}' in parents and trashed=false"
87-
results = self.drive_service.files().list(
88-
q=query,
89-
fields="nextPageToken, files(id, name, mimeType)").execute()
90-
return results.get('files', [])
95+
results = (
96+
self.drive_service.files()
97+
.list(q=query, fields="nextPageToken, files(id, name, mimeType)")
98+
.execute()
99+
)
100+
return results.get("files", [])
91101

92102
def remove_downloads(self):
93103
if os.path.exists(self.download_dir):
94104
shutil.rmtree(self.download_dir)
95105

96106

97-
98107
def get_folder_id_from_url(url):
99108
parsed = urlparse(url)
100-
path_parts = parsed.path.split('/')
101-
if 'folders' in path_parts:
102-
folder_index = path_parts.index('folders')
109+
path_parts = parsed.path.split("/")
110+
if "folders" in path_parts:
111+
folder_index = path_parts.index("folders")
103112
return path_parts[folder_index + 1]
104113
query_params = parse_qs(parsed.query)
105-
if 'id' in query_params:
106-
return query_params['id'][0]
114+
if "id" in query_params:
115+
return query_params["id"][0]
107116
raise ValueError("Could not extract folder ID from the URL")

0 commit comments

Comments
 (0)