1- from googleapiclient .discovery import build
2- from google_auth_oauthlib .flow import InstalledAppFlow
1+ import os
2+ import pickle
3+
34from google .auth .transport .requests import Request
4- from googleapiclient .http import MediaFileUpload
5+ from google_auth_oauthlib .flow import InstalledAppFlow
6+ from googleapiclient .discovery import build
57from googleapiclient .errors import HttpError
6- import pickle
7- import os
8+ from googleapiclient .http import MediaFileUpload
89from tenacity import *
9- import threading
10+
1011from bot import LOGGER , parent_id , DOWNLOAD_DIR , IS_TEAM_DRIVE , INDEX_URL , DOWNLOAD_STATUS_UPDATE_INTERVAL
11- from bot .helper .ext_utils .fs_utils import get_mime_type
1212from bot .helper .ext_utils .bot_utils import *
13+ from bot .helper .ext_utils .fs_utils import get_mime_type
1314
1415logging .getLogger ('googleapiclient.discovery' ).setLevel (logging .ERROR )
1516
@@ -52,7 +53,8 @@ def speed(self):
5253 except ZeroDivisionError :
5354 return 0
5455
55- @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ),stop = stop_after_attempt (5 ),retry = retry_if_exception_type (HttpError ),before = before_log (LOGGER ,logging .DEBUG ))
56+ @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ), stop = stop_after_attempt (5 ),
57+ retry = retry_if_exception_type (HttpError ), before = before_log (LOGGER , logging .DEBUG ))
5658 def _on_upload_progress (self ):
5759 if self .status is not None :
5860 chunk_size = self .status .total_size * self .status .progress () - self ._file_uploaded_bytes
@@ -61,21 +63,8 @@ def _on_upload_progress(self):
6163 self .uploaded_bytes += chunk_size
6264 self .total_time += self .update_interval
6365
64- def __upload_empty_file (self , path , file_name , mime_type , parent_id = None ):
65- media_body = MediaFileUpload (path ,
66- mimetype = mime_type ,
67- resumable = False )
68- file_metadata = {
69- 'name' : file_name ,
70- 'description' : 'mirror' ,
71- 'mimeType' : mime_type ,
72- }
73- if parent_id is not None :
74- file_metadata ['parents' ] = [parent_id ]
75- return self .__service .files ().create (supportsTeamDrives = True ,
76- body = file_metadata , media_body = media_body ).execute ()
77-
78- @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ),stop = stop_after_attempt (5 ),retry = retry_if_exception_type (HttpError ),before = before_log (LOGGER ,logging .DEBUG ))
66+ @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ), stop = stop_after_attempt (5 ),
67+ retry = retry_if_exception_type (HttpError ), before = before_log (LOGGER , logging .DEBUG ))
7968 def __set_permission (self , drive_id ):
8069 permissions = {
8170 'role' : 'reader' ,
@@ -85,7 +74,8 @@ def __set_permission(self, drive_id):
8574 }
8675 return self .__service .permissions ().create (supportsTeamDrives = True , fileId = drive_id , body = permissions ).execute ()
8776
88- @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ),stop = stop_after_attempt (5 ),retry = retry_if_exception_type (HttpError ),before = before_log (LOGGER ,logging .DEBUG ))
77+ @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ), stop = stop_after_attempt (5 ),
78+ retry = retry_if_exception_type (HttpError ), before = before_log (LOGGER , logging .DEBUG ))
8979 def upload_file (self , file_path , file_name , mime_type , parent_id ):
9080 # File body description
9181 file_metadata = {
@@ -104,13 +94,14 @@ def upload_file(self, file_path, file_name, mime_type, parent_id):
10494 body = file_metadata , media_body = media_body ).execute ()
10595 if not IS_TEAM_DRIVE :
10696 self .__set_permission (response ['id' ])
107- drive_file = self .__service .files ().get (fileId = response ['id' ]).execute ()
97+ drive_file = self .__service .files ().get (supportsTeamDrives = True ,
98+ fileId = response ['id' ]).execute ()
10899 download_url = self .__G_DRIVE_BASE_DOWNLOAD_URL .format (drive_file .get ('id' ))
109100 return download_url
110101 media_body = MediaFileUpload (file_path ,
111102 mimetype = mime_type ,
112103 resumable = True ,
113- chunksize = 50 * 1024 * 1024 )
104+ chunksize = 50 * 1024 * 1024 )
114105
115106 # Insert a file
116107 drive_file = self .__service .files ().create (supportsTeamDrives = True ,
@@ -170,7 +161,8 @@ def upload(self, file_name: str):
170161 LOGGER .info ("Deleting downloaded file/folder.." )
171162 return link
172163
173- @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ),stop = stop_after_attempt (5 ),retry = retry_if_exception_type (HttpError ),before = before_log (LOGGER ,logging .DEBUG ))
164+ @retry (wait = wait_exponential (multiplier = 2 , min = 3 , max = 6 ), stop = stop_after_attempt (5 ),
165+ retry = retry_if_exception_type (HttpError ), before = before_log (LOGGER , logging .DEBUG ))
174166 def create_directory (self , directory_name , parent_id ):
175167 file_metadata = {
176168 "name" : directory_name ,
0 commit comments