上传文件至 /

This commit is contained in:
2025-09-15 11:27:21 +00:00
parent 8bfe55ba70
commit ddb4a2c5b5
5 changed files with 468 additions and 0 deletions

149
Publisher.py Normal file
View File

@@ -0,0 +1,149 @@
from ProjectCfg import DOMAIN
from .CallServer import _make_request
from typing import Optional
###==========================发布者管理============================
def GetPublisher(Authorization: str, name: str) -> dict:
"""获取发布者信息"""
url = f"{DOMAIN}/publishers/{name}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def PatchPublisher(Authorization: str, name: str, nick: Optional[str] = None, bio: Optional[str] = None, picture_id: Optional[str] = None, background_id: Optional[str] = None) -> dict:
"""修改发布者信息"""
body = {
"nick": nick,
"bio": bio,
"picture_id": picture_id,
"background_id": background_id,
}
url = f"{DOMAIN}/publishers/{name}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('PATCH', url, headers, request_body=body, normal_codes=[201])
def DeletePublisher(Authorization: str, name: str) -> dict:
"""删除发布者"""
url = f"{DOMAIN}/publishers/{name}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers, normal_codes=[204])
def GetPublisherStats(Authorization: str, name: str) -> dict:
"""获取发布者统计信息"""
url = f"{DOMAIN}/publishers/{name}/stats"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetPublishersOfAccountId(Authorization: str, account_id: str) -> dict:
"""获取指定账户的发布者"""
url = f"{DOMAIN}/publishers/of/{account_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetPublishers(Authorization: str) -> dict:
"""获取所有发布者"""
url = f"{DOMAIN}/publishers"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def PostPublisherInvite(Authorization: str, name: str, related_user_id: str, role: int) -> dict:
"""发送发布者邀请"""
body = {"related_user_id": related_user_id, "role": role}
url = f"{DOMAIN}/publishers/invites/{name}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, request_body=body, normal_codes=[201])
def GetPublisherInvites(Authorization: str, name: str) -> dict:
"""获取发布者邀请"""
url = f"{DOMAIN}/publishers/invites/{name}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def AcceptPublisherInvite(Authorization: str, name: str) -> dict:
"""接受发布者邀请"""
url = f"{DOMAIN}/publishers/invites/{name}/accept"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, normal_codes=[201])
def DeclinePublisherInvite(Authorization: str, name: str) -> dict:
"""拒绝发布者邀请"""
url = f"{DOMAIN}/publishers/invites/{name}/decline"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, normal_codes=[201])
def DeletePublisherMember(Authorization: str, name: str, member_id: str) -> dict:
"""删除发布者成员"""
url = f"{DOMAIN}/publishers/{name}/members/{member_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers, normal_codes=[204])
def PostIndividualPublisher(Authorization: str, name: str, nick: Optional[str] = None, bio: Optional[str] = None, picture_id: Optional[str] = None, background_id: Optional[str] = None) -> dict:
"""创建个人发布者"""
body = {
"name": name,
"nick": nick,
"bio": bio,
"picture_id": picture_id,
"background_id": background_id,
}
url = f"{DOMAIN}/publishers/individual"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, request_body=body, normal_codes=[201])
def PostOrganizationPublisher(Authorization: str, name: str, realm_slug: str) -> dict:
"""创建组织发布者"""
body = {"name": name, "realm_slug": realm_slug}
url = f"{DOMAIN}/publishers/organization/{realm_slug}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, request_body=body, normal_codes=[201])
def GetPublisherMembers(Authorization: str, name: str, offset: int = 0, take: int = 20) -> dict:
"""获取发布者成员"""
url = f"{DOMAIN}/publishers/{name}/members"
headers = {'accept': 'application/json', 'Authorization': Authorization}
params = {"offset": offset, "take": take}
return _make_request('GET', url, headers, params=params)
def GetMyPublisherMember(Authorization: str, name: str) -> dict:
"""获取我的发布者成员信息"""
url = f"{DOMAIN}/publishers/{name}/members/me"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def PostPublisherFeature(Authorization: str, name: str, flag: str, expired_at: Optional[str] = None) -> dict:
"""创建发布者特性"""
body = {"flag": flag, "expired_at": expired_at}
url = f"{DOMAIN}/publishers/{name}/features"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, request_body=body, normal_codes=[201])
def DeletePublisherFeature(Authorization: str, name: str, flag: str) -> dict:
"""删除发布者特性"""
url = f"{DOMAIN}/publishers/{name}/features/{flag}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers, normal_codes=[204])
def GetPublisherSubscriptions(Authorization: str) -> dict:
"""获取发布者订阅状态"""
url = f"{DOMAIN}/publishers/subscriptions"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetPublisherSubscription(Authorization: str, name: str) -> dict:
"""获取特定发布者的订阅状态"""
url = f"{DOMAIN}/api/publishers/{name}/subscription"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def PostPublisherSubscribe(Authorization: str, name: str, subscribeRequest: Optional[dict] = None,tier:int=0) -> dict:
"""订阅特定发布者"""
RequestsBody={
"tier":tier
}
url = f"{DOMAIN}/api/publishers/{name}/subscribe"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, request_body=subscribeRequest)
def PostPublisherUnsubscribe(Authorization: str, name: str) -> dict:
"""取消订阅特定发布者"""
url = f"{DOMAIN}/api/publishers/{name}/unsubscribe"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers, normal_codes=[204])

117
Realm.py Normal file
View File

@@ -0,0 +1,117 @@
from ProjectCfg import DOMAIN
from .CallServer import _make_request
###==========================领域部分==========================
def GetRealm(slug:str,Authorization: str = '') -> dict:
"""获取领域详情"""
url = f"{DOMAIN}/realms/{slug}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def ModifyRealm(slug:str,Authorization: str ,name:str='',description:str='',picture_id:str='',background_id:str='',is_community:bool=True,is_public:bool=True) -> dict:
"""修改领域"""
request_body={
"slug": slug,
"name": name,
"description": description,
"picture_id": picture_id,
"background_id": background_id,
"is_community": is_community,
"is_public": is_public
}
url = f"{DOMAIN}/realms/{slug}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('PATCH', url, headers,request_body=request_body,normal_codes=[201])
def DeleteRealm(slug:str,Authorization: str) -> dict:
"""删除领域"""
url = f"{DOMAIN}/realms/{slug}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def GetJoinedRealms(Authorization: str) -> dict:
"""获取加入的领域"""
url = f"{DOMAIN}/realms"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def CreateRealm(slug:str,Authorization: str,name:str='',description:str='',picture_id:str='',background_id:str='',is_community:bool=True,is_public:bool=True) -> dict:
"""创建领域"""
request_body={
"slug": slug,
"name": name,
"description": description,
"picture_id": picture_id,
"background_id": background_id,
"is_community": is_community,
"is_public": is_public
}
url = f"{DOMAIN}/realms"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,request_body=request_body,normal_codes=[201])
def GetRealmInvites(Authorization: str) -> dict:
"""获取领域邀请"""
url = f"{DOMAIN}/realms/invites"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def SendRealmInvite(slug:str,Authorization: str,user_id:str,role:int=0) -> dict:
"""发送领域邀请"""
request_body={
"related_user_id": user_id,
"role": role
}
url = f"{DOMAIN}/realms/invites/{slug}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,request_body=request_body,normal_codes=[201])
def AcceptRealmInvite(slug:str,Authorization: str) -> dict:
"""接受领域邀请"""
url = f"{DOMAIN}/realms/invites/{slug}/accept"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,normal_codes=[201])
def DeclineRealmInvite(slug:str,Authorization: str) -> dict:
"""拒绝领域邀请"""
url = f"{DOMAIN}/realms/invites/{slug}/decline"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,normal_codes=[201])
def GetRealmMembers(slug:str,Authorization: str,offset:int=0,take:int=20,withStatus:bool=False) -> dict:
"""获取领域成员"""
url = f"{DOMAIN}/realms/{slug}/members"
params = {"offset":offset,"take":take,"withStatus":withStatus}
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers,params=params)
def GetRealmMemberMe(slug:str,Authorization: str) -> dict:
"""获取领域成员"""
url = f"{DOMAIN}/realms/{slug}/members/me"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def LeaveRealm(slug:str,Authorization: str) -> dict:
"""退出领域"""
url = f"{DOMAIN}/realms/{slug}/members/me"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def JoinRealm(slug:str,Authorization: str) -> dict:
"""加入领域"""
url = f"{DOMAIN}/realms/{slug}/members/me"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,normal_codes=[201])
def KickMemberRealm(slug:str,Authorization: str,user_id:str) -> dict:
"""踢出领域成员"""
url = f"{DOMAIN}/realms/{slug}/members/{user_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def SetMemberRoleRealm(slug:str,Authorization: str,user_id:str,role:int) -> dict:
"""设置领域成员角色"""
url = f"{DOMAIN}/realms/{slug}/members/{user_id}/role"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('PATCH', url, headers,normal_codes=[201],request_body=role)

28
RealtimeCall.py Normal file
View File

@@ -0,0 +1,28 @@
from ProjectCfg import DOMAIN
from.CallServer import _make_request
###==========================实时聊天==========================
def GetRealtimeChat(Authorization: str,roomid:str ) -> dict:
"""获取实时聊天"""
url = f"{DOMAIN}/chat/realtime/{roomid}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def CreateRealtimeChat(Authorization: str,roomid:str ) -> dict:
"""创建实时聊天"""
url = f"{DOMAIN}/chat/realtime/{roomid}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,normal_codes=[201])
def LeaveRealtimeChat(Authorization: str,roomid:str ) -> dict:
"""离开实时聊天"""
url = f"{DOMAIN}/chat/realtime/{roomid}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def JoinRealtimeChat(Authorization: str,roomid:str ) -> dict:
"""加入实时聊天"""
url = f"{DOMAIN}/chat/realtime/{roomid}/join"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)

56
SolarNetworkDrive.py Normal file
View File

@@ -0,0 +1,56 @@
###官方的文件分享池API
###By Liang-work(NRFF&nanci)
###Version 1.0
###License: BSD
DOMAIN = 'https://api.solian.app'
import base64
import os
from tusclient import client
import requests
import traceback
def DownloadFileFromServer(ID:str,SavePath:str='%temp%/') -> bytes:
"""
从服务器下载文件
:param ID: 文件ID
:param SavePath: 本地保存路径
:return:
"""
response = requests.get(f"{DOMAIN}/drive/files/{ID}")
if response.status_code == 200:
with open(SavePath, "wb") as f:
f.write(response.content)
return response.status_code
else:
return response.status_code
def UploadFileToServer(token:str,file_path,file_type,pool=1,chunk_size=1024*1024*10) ->str:
"""
使用tuspy上传文件
:param file_path: 文件路径
:param file_type: 文件类型 accept_types: ["image/*", "video/*", "audio/*"]
:param pool: 存储池(默认:Solar Network Shared)
:param chunk_size: 分块大小
:return: 文件id
"""
from tusclient import client
pools = [
"07bc8e33-f3aa-4e35-83c2-c63b2b67d8cd", # 雨云存储 中国
"c53136a6-9152-4ecb-9f88-43c41438c23e", # Solar Network Shared
"500e5ed8-bd44-4359-bc0a-ec85e2adf447", # Solar Network Driver
]
headers = {
"Authorization": f"Bearer {token}",
"X-FilePool": pools[pool]
}
tus = client.TusClient('https://api.solian.app/drive/tus')
tus.set_headers(headers)
file = tus.uploader(file_path, chunk_size=chunk_size)
file.metadata = {
"content-type": file_type,
"filename": os.path.basename(file_path)
}
file.upload()
return file.url.split("/")[-1]

118
Sticker.py Normal file
View File

@@ -0,0 +1,118 @@
from ProjectCfg import DOMAIN
from .CallServer import _make_request
###==========================贴纸==========================
def GetStickerPackageList(Authorization: str,offset:int=0,take:int=20,pub:str='',order:str='',query:str="") -> dict:
"""获取贴纸包列表"""
url = f"{DOMAIN}/stickers"
headers = {'accept': 'application/json', 'Authorization': Authorization}
params = {"offset":offset,"take":take,"pub":pub,"order":order,"query":query}
return _make_request('GET', url, headers,params=params)
def CreateStickerPackage(Authorization: str,pub:str,name:str,description:str,prefix:str) -> dict:
"""创建贴纸包"""
url = f"{DOMAIN}/stickers"
RequestsBody={
"name":name,
"description": description,
"prefix": prefix
}
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,request_body=RequestsBody,params={"pub":pub},normal_codes=[201])
def GetMyStickerList(Authorization: str) -> dict:
"""获取我的贴纸列表"""
url = f"{DOMAIN}/stickers/me"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetAStickerPackageInfo(Authorization: str,sticker_id:str) -> dict:
"""获取贴纸包信息"""
url = f"{DOMAIN}/stickers/{sticker_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def ModifyStickerPackage(Authorization: str,sticker_id:str,name:str,description:str,prefix:str) -> dict:
"""修改贴纸包"""
url = f"{DOMAIN}/stickers/{sticker_id}"
RequestsBody={
"name":name,
"description": description,
"prefix": prefix
}
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('PATCH', url, headers,request_body=RequestsBody,normal_codes=[201])
def DeleteStickerPackage(Authorization: str,sticker_id:str) -> dict:
"""删除贴纸包"""
url = f"{DOMAIN}/stickers/{sticker_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def GetStickerPackageContent(Authorization: str,sticker_id:str) -> dict:
"""获取贴纸包内容"""
url = f"{DOMAIN}/stickers/{sticker_id}/content"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def ModifyStickerPackageContent(Authorization: str,sticker_id:str,slug:str,image_id:str) -> dict:
"""修改贴纸包内容"""
url = f"{DOMAIN}/stickers/{sticker_id}/content"
RequestsBody={
"slug":slug,
"image_id": image_id
}
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,request_body=RequestsBody,normal_codes=[201])
def GetStickerInfo(Authorization: str,sticker_id:str) -> dict:
"""获取贴纸信息"""
url = f"{DOMAIN}/stickers/lookup/{sticker_id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetStickerImg(Authorization: str,sticker_id:str) -> dict:
"""获取贴纸图片"""
url = f"{DOMAIN}/stickers/lookup/{sticker_id}/open"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def GetPackageStickerInfo(Authorization: str,packid:str,id:str) -> dict:
"""获取贴纸包信息"""
url = f"{DOMAIN}/stickers/{packid}/content/{id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def CreateStickerImageInPackage(Authorization: str,packid:str,slug:str,image_id:str) -> dict:
"""创建贴纸包图片"""
url = f"{DOMAIN}/stickers/{packid}/content"
RequestsBody={
"slug":slug,
"image_id": image_id
}
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('PATCH', url, headers,request_body=RequestsBody,normal_codes=[201])
def DeleteStickerImageInPackage(Authorization: str,packid:str,id:str) -> dict:
"""删除贴纸包图片"""
url = f"{DOMAIN}/stickers/{packid}/content/{id}"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])
def GetSelfHadStickerPackageInfo(Authorization: str,packid:str) -> dict:
"""获取自己已拥有的贴纸包信息"""
url = f"{DOMAIN}/stickers/{packid}/own"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('GET', url, headers)
def AddStickerPackage(Authorization: str,packid:str) -> dict:
"""添加贴纸包"""
url = f"{DOMAIN}/stickers/{packid}/own"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('POST', url, headers,normal_codes=[201])
def RemoveStickerPackage(Authorization: str,packid:str) -> dict:
"""移除贴纸包"""
url = f"{DOMAIN}/stickers/{packid}/own"
headers = {'accept': 'application/json', 'Authorization': Authorization}
return _make_request('DELETE', url, headers,normal_codes=[204])