Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- async def get_files_from_site(drive_id):
- async def process_drive_files(drive_id):
- file_folders = await get_items()
- _tasks = [asyncio.create_task(process_item(item, drive_id)) for item in file_folders]
- results = await asyncio.gather(*_tasks)
- print(f"Got {len(results)} files from drive: {drive_id}")
- return [file for sublist in results for file in sublist]
- async def process_item(item, drive_id, depth=0):
- if "folder" in item:
- return await process_folder(item, drive_id, depth)
- else:
- return [await get_file_with_metadata(item, drive_id)]
- async def process_folder(folder, drive_id, depth=0):
- print(
- f"T: {datetime.now()} | L:{depth} | Processing: Folder_{folder['name']}")
- children = await get_folder_children()
- _tasks = [asyncio.create_task(process_item(item, drive_id, depth + 1)) for item in children]
- results = await asyncio.gather(*_tasks)
- return [file for sublist in results for file in sublist]
- try:
- await process_drive_files(drive_id)
- except:
- ....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement