Improve logic for parsing id from gdrive url
Signed-off-by: lzzy12 <jhashivam2020@gmail.com>
This commit is contained in:
parent
49fe46bad3
commit
b4b0dcd3f8
|
|
@ -1,16 +1,20 @@
|
||||||
import os
|
import os
|
||||||
import pickle
|
import pickle
|
||||||
|
import urllib.parse as urlparse
|
||||||
|
from urllib.parse import parse_qs
|
||||||
|
|
||||||
|
import requests
|
||||||
from google.auth.transport.requests import Request
|
from google.auth.transport.requests import Request
|
||||||
from google_auth_oauthlib.flow import InstalledAppFlow
|
from google_auth_oauthlib.flow import InstalledAppFlow
|
||||||
from googleapiclient.discovery import build
|
from googleapiclient.discovery import build
|
||||||
from googleapiclient.errors import HttpError
|
from googleapiclient.errors import HttpError
|
||||||
from googleapiclient.http import MediaFileUpload
|
from googleapiclient.http import MediaFileUpload
|
||||||
from tenacity import *
|
from tenacity import *
|
||||||
from bot import LOGGER, parent_id, DOWNLOAD_DIR, IS_TEAM_DRIVE, INDEX_URL, DOWNLOAD_STATUS_UPDATE_INTERVAL
|
|
||||||
|
from bot import LOGGER, parent_id, DOWNLOAD_DIR, IS_TEAM_DRIVE, INDEX_URL
|
||||||
from bot.helper.ext_utils.bot_utils import *
|
from bot.helper.ext_utils.bot_utils import *
|
||||||
from bot.helper.ext_utils.fs_utils import get_mime_type
|
from bot.helper.ext_utils.fs_utils import get_mime_type
|
||||||
import requests
|
|
||||||
logging.getLogger('googleapiclient.discovery').setLevel(logging.ERROR)
|
logging.getLogger('googleapiclient.discovery').setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -53,12 +57,12 @@ class GoogleDriveHelper:
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def parseLink(self,link):
|
@staticmethod
|
||||||
|
def getIdFromUrl(link: str):
|
||||||
if "folders" in link or "file" in link:
|
if "folders" in link or "file" in link:
|
||||||
node_id = link.split("?")[0].split("/")[-1].replace("/",'')
|
return link.rsplit('/')[-1]
|
||||||
else:
|
parsed = urlparse.urlparse(link)
|
||||||
node_id = link.split("=")[1].split("&")[0].replace("/",'')
|
return parse_qs(parsed.query)['id'][0]
|
||||||
return node_id
|
|
||||||
|
|
||||||
@retry(wait=wait_exponential(multiplier=2, min=3, max=6), stop=stop_after_attempt(5),
|
@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))
|
retry=retry_if_exception_type(HttpError), before=before_log(LOGGER, logging.DEBUG))
|
||||||
|
|
@ -176,8 +180,8 @@ class GoogleDriveHelper:
|
||||||
return self.__service.files().copy(supportsAllDrives=True,fileId=file_id,body=body).execute()
|
return self.__service.files().copy(supportsAllDrives=True,fileId=file_id,body=body).execute()
|
||||||
|
|
||||||
def clone(self,link):
|
def clone(self,link):
|
||||||
self.transferred_size = 0
|
self.transferred_size = 0
|
||||||
file_id = self.parseLink(link)
|
file_id = self.getIdFromUrl(link)
|
||||||
msg = ""
|
msg = ""
|
||||||
LOGGER.info(f"File ID: {file_id}")
|
LOGGER.info(f"File ID: {file_id}")
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue