commit 7bdc3c0cc10624f94e81b8ecca8b2f6af023c131
parent ab6473739c0c724b21282da00ce6c0483a750ed9
Author: archiveanon <>
Date: Sun, 7 Apr 2024 09:23:22 +0000
Migrate calls to api2
While legacy endpoints are still valid, api2 is now available as
of 2024-03-10.
Diffstat:
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/gofile/api.py b/src/gofile/api.py
@@ -5,6 +5,7 @@ import collections
import enum
import os
import pathlib
+import random
import textwrap
from typing import Generic, Iterator, Optional, TypeVar
@@ -55,6 +56,18 @@ class GofileServerResult(msgspec.Struct):
server: Optional[str] = None
+class GofileZonedServerResult(msgspec.Struct):
+ name: Optional[str] = None
+ zone: Optional[str] = None
+
+ def to_base_server(self):
+ return GofileServerResult(self.name)
+
+
+class GofileServerListResult(msgspec.Struct):
+ servers: list[GofileZonedServerResult]
+
+
class GofileUploadResult(msgspec.Struct):
download_page: str = msgspec.field(name="downloadPage")
code: str = msgspec.field(name="code")
@@ -95,7 +108,11 @@ def _gofile_api_post(*args, type: T, **kwargs) -> T:
def get_upload_server() -> GofileServerResult:
- return _gofile_api_get("https://api.gofile.io/getServer", type=GofileServerResult)
+ server_list = _gofile_api_get("https://api.gofile.io/servers", type=GofileServerListResult)
+
+ if not server_list.servers:
+ return GofileServerResult()
+ return random.choice(server_list.servers).to_base_server()
def upload_single(
@@ -145,7 +162,7 @@ def upload_single(
while True:
try:
upload_result = _gofile_api_post(
- f"https://{server}.gofile.io/uploadFile",
+ f"https://{server}.gofile.io/contents/uploadfile",
data=monitor,
headers={"Content-Type": multipart_data.content_type},
type=GofileUploadResult,