Files
SolianForPython/core/SNAPI/Publisher.py

150 lines
7.1 KiB
Python

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])