| import requests | |
| from unzipper import LOGGER | |
| anonfilesBaseSites = ["anonfiles.com", "hotfile.io", "bayfiles.com", "megaupload.nz", "letsupload.cc", "filechan.org", "myfile.is", "vshare.is", "rapidshare.nu", "lolabits.se", "openload.cc", "share-online.is", "upvid.cc"] | |
| async def get_gdrive_id(gdrive_url): | |
| gdrive_url = gdrive_url.strip().rstrip('/') | |
| if "drive.google.com" in gdrive_url: | |
| if "/file/d/" in gdrive_url: | |
| start_index = gdrive_url.find("/file/d/") + len("/file/d/") | |
| end_index = gdrive_url.find("/", start_index) | |
| file_id = gdrive_url[start_index:end_index] | |
| return file_id | |
| if "/open?id=" in gdrive_url: | |
| start_index = gdrive_url.find("/open?id=") + len("/open?id=") | |
| file_id = gdrive_url[start_index:] | |
| return file_id | |
| if "/file/d/" in gdrive_url and "/view" in gdrive_url: | |
| start_index = gdrive_url.find("/file/d/") + len("/file/d/") | |
| end_index = gdrive_url.find("/view", start_index) | |
| file_id = gdrive_url[start_index:end_index] | |
| return file_id | |
| if "/uc?id=" in gdrive_url: | |
| start_index = gdrive_url.find("/uc?id=") + len("/uc?id=") | |
| end_index = gdrive_url.find("&", start_index) | |
| file_id = gdrive_url[start_index:end_index] | |
| return file_id | |
| if "/uc?export=download&id=" in gdrive_url: | |
| start_index = gdrive_url.find("/uc?export=download&id=") + len("/uc?export=download&id=") | |
| end_index = gdrive_url.find("&", start_index) | |
| file_id = gdrive_url[start_index:end_index] | |
| return file_id | |
| raise ValueError("Invalid or unrecognized Google Drive URL format") | |
| async def gdrive_dl(url): | |
| try: | |
| file_id = await get_gdrive_id(url) | |
| downloadable_link = f"https://drive.google.com/uc?id={file_id}&export=download" | |
| return downloadable_link | |
| except ValueError as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def yandisk_dl(url): | |
| try: | |
| file_id = url.split("/")[-1] | |
| downloadable_link = f"https://cloud-api.yandex.net/v1/disk/public/resources/download?public_key={file_id}" | |
| r = requests.get(downloadable_link) | |
| download_link = r.json()["href"] | |
| return download_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def onedrive_dl(url): | |
| try: | |
| file_id = url.split("/")[-2] | |
| downloadable_link = f"https://api.onedrive.com/v1.0/shares/u!{file_id}/root/content" | |
| return downloadable_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def mediafire_dl(url): | |
| try: | |
| file_id = url.split("/")[-2] | |
| downloadable_link = f"https://download{file_id}.mediafire.com/file/{file_id}/file" | |
| return downloadable_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def anonfiles_dl(url): | |
| basesite = url.split("/")[2].replace("www.", "") | |
| if basesite not in anonfilesBaseSites: | |
| return None | |
| try: | |
| file_id = url.split("/")[-1] | |
| downloadable_link = f"https://api.anonfiles.com/v2/file/{file_id}/info" | |
| r = requests.get(downloadable_link) | |
| download_link = r.json()["data"]["file"]["url"]["full"] | |
| return download_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def krakenfiles_dl(url): | |
| try: | |
| file_id = url.split("/")[-1] | |
| downloadable_link = f"https://krakenfiles.com/view/{file_id}" | |
| r = requests.get(downloadable_link) | |
| download_link = r.url | |
| return download_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |
| async def wetransfer_dl(url): | |
| try: | |
| file_id = url.split("/")[-1] | |
| downloadable_link = f"https://wetransfer.com/api/ui/transfers/{file_id}/download" | |
| r = requests.get(downloadable_link) | |
| download_link = r.json()["direct_link"] | |
| return download_link | |
| except Exception as e: | |
| LOGGER.warning(e) | |
| return None | |