Advertisement
Guest User

Untitled

a guest
Apr 29th, 2024
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.08 KB | None | 0 0
  1. async def get_files_from_site(drive_id):
  2.  
  3.   async def process_drive_files(drive_id):
  4.     file_folders = await get_items()
  5.     _tasks = [asyncio.create_task(process_item(item, drive_id)) for item in file_folders]
  6.     results = await asyncio.gather(*_tasks)
  7.     print(f"Got {len(results)} files from drive: {drive_id}")
  8.     return [file for sublist in results for file in sublist]
  9.  
  10.  
  11.   async def process_item(item, drive_id, depth=0):
  12.     if "folder" in item:
  13.         return await process_folder(item, drive_id, depth)
  14.     else:
  15.         return [await get_file_with_metadata(item, drive_id)]
  16.  
  17.  
  18.   async def process_folder(folder, drive_id, depth=0):
  19.     print(
  20.         f"T: {datetime.now()}   |   L:{depth}   |   Processing: Folder_{folder['name']}")
  21.     children = await get_folder_children()
  22.     _tasks = [asyncio.create_task(process_item(item, drive_id, depth + 1)) for item in children]
  23.     results = await asyncio.gather(*_tasks)
  24.     return [file for sublist in results for file in sublist]
  25.  
  26.  
  27.     try:
  28.         await process_drive_files(drive_id)
  29.    
  30.    
  31.     except:
  32.         ....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement