mirror of
https://github.com/NohamR/GoFileCLI.git
synced 2025-05-24 00:49:00 +00:00
Update gopload.py
This commit is contained in:
parent
e908521f83
commit
f939e13afb
55
gopload.py
55
gopload.py
@ -5,6 +5,7 @@ import argparse
|
|||||||
import os
|
import os
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor
|
||||||
|
|
||||||
|
|
||||||
def get_file_paths(folderPath):
|
def get_file_paths(folderPath):
|
||||||
@ -52,28 +53,50 @@ def createfolder(parentFolderId, folderName, logger):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
# def uploadfile(serverName, folderId, filePath, logger):
|
||||||
|
# headers = {"Authorization": f"Bearer {TOKEN}"}
|
||||||
|
# files = {
|
||||||
|
# 'file': (filePath, open(filePath, 'rb')),
|
||||||
|
# 'folderId': (None, folderId),
|
||||||
|
# }
|
||||||
|
# response = requests.post(f"https://{serverName}.gofile.io/contents/uploadfile", headers=headers, files=files).json()
|
||||||
|
# if response["status"] == "ok":
|
||||||
|
# logger.debug(response)
|
||||||
|
# name = response["data"]["name"]
|
||||||
|
# downloadPage = response["data"]["downloadPage"]
|
||||||
|
# parentFolderId = response["data"]["parentFolder"]
|
||||||
|
# logger.debug(f"""File {name} uploaded to {downloadPage}""")
|
||||||
|
# return downloadPage, parentFolderId
|
||||||
|
# else:
|
||||||
|
# logger.error(f"{response}")
|
||||||
|
# return None
|
||||||
|
|
||||||
def uploadfile(serverName, folderId, filePath, logger):
|
def uploadfile(serverName, folderId, filePath, logger):
|
||||||
headers = {"Authorization": f"Bearer {TOKEN}"}
|
# file_size = os.path.getsize(filePath)
|
||||||
files = {"file": open(filePath, "rb")}
|
with open(filePath, "rb") as fd:
|
||||||
data = {"folderId": folderId}
|
encoder = MultipartEncoder(
|
||||||
response = requests.post(
|
fields={
|
||||||
f"https://{serverName}.gofile.io/contents/uploadfile",
|
'file': (filePath, fd, 'application/octet-stream'),
|
||||||
headers=headers,
|
'folderId': folderId,
|
||||||
files=files,
|
}
|
||||||
data=data,
|
)
|
||||||
).json()
|
with tqdm(desc="Uploading", total=encoder.len, unit="B", unit_scale=True, unit_divisor=1024) as t:
|
||||||
|
monitor = MultipartEncoderMonitor(encoder, lambda monitor: t.update(monitor.bytes_read))
|
||||||
|
headers = {"Authorization": f"Bearer {TOKEN}"}
|
||||||
|
response = requests.post(f"https://{serverName}.gofile.io/contents/uploadfile", headers=headers, data=monitor).json()
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
if response["status"] == "ok":
|
if response["status"] == "ok":
|
||||||
name = response["data"]["fileName"]
|
logger.debug(response)
|
||||||
code = response["data"]["code"]
|
name = response["data"]["name"]
|
||||||
downloadPage = response["data"]["downloadPage"]
|
downloadPage = response["data"]["downloadPage"]
|
||||||
parentFolderId = response["data"]["parentFolder"]
|
parentFolderId = response["data"]["parentFolder"]
|
||||||
logger.debug(f"""File {name} uploaded to {downloadPage} with code {code}""")
|
logger.debug(f"""File {name} uploaded to {downloadPage}""")
|
||||||
return downloadPage, parentFolderId
|
return downloadPage, parentFolderId
|
||||||
else:
|
else:
|
||||||
logger.error(f"{response}")
|
logger.error(f"{response}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def actionFolder(folderId, attributeValue):
|
def actionFolder(folderId, attributeValue):
|
||||||
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {TOKEN}"}
|
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {TOKEN}"}
|
||||||
data = {"attribute": "public", "attributeValue": attributeValue}
|
data = {"attribute": "public", "attributeValue": attributeValue}
|
||||||
@ -105,7 +128,7 @@ def main(filePath, folderPath, folderName, parentFolderId, private, logger):
|
|||||||
servers = getservers(logger)
|
servers = getservers(logger)
|
||||||
if servers:
|
if servers:
|
||||||
serverName = random.choice(servers)
|
serverName = random.choice(servers)
|
||||||
logger.debug("Selected server: ", serverName)
|
logger.debug(f"Selected server: {serverName}")
|
||||||
|
|
||||||
if folderName and parentFolderId:
|
if folderName and parentFolderId:
|
||||||
logger.info(f"Creating folder: {folderName} for: {parentFolderId}")
|
logger.info(f"Creating folder: {folderName} for: {parentFolderId}")
|
||||||
@ -129,7 +152,7 @@ def main(filePath, folderPath, folderName, parentFolderId, private, logger):
|
|||||||
for file in files:
|
for file in files:
|
||||||
if parentFolderId:
|
if parentFolderId:
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Uploading file: {file} to: {parentFolderId} on: {serverName}"
|
f"Uploading file: '{file}' to: '{parentFolderId}' on: '{serverName}'"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
logger.info(f"Uploading file: {file} on: {serverName}")
|
logger.info(f"Uploading file: {file} on: {serverName}")
|
||||||
@ -220,4 +243,4 @@ if __name__ == "__main__":
|
|||||||
main(args.file, args.folder, args.name, args.parent, args.private, logger)
|
main(args.file, args.folder, args.name, args.parent, args.private, logger)
|
||||||
else:
|
else:
|
||||||
logger.error("No file or folder specified")
|
logger.error("No file or folder specified")
|
||||||
exit(1)
|
exit(1)
|
Loading…
x
Reference in New Issue
Block a user