From 0e04dfb10da51aca17fdaf06ed3894135615d267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E8=BE=9E?= Date: Sat, 13 Sep 2025 06:57:12 +0000 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20core/SNAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/SNAPI/PostTag.py | 2 +- core/SNAPI/Publisher.py | 2 +- core/SNAPI/Realm.py | 117 ++++++++++++++++++++++++++++++++++++ core/SNAPI/RealtimeCall.py | 28 +++++++++ core/SNAPI/Sticker.py | 118 +++++++++++++++++++++++++++++++++++++ 5 files changed, 265 insertions(+), 2 deletions(-) create mode 100644 core/SNAPI/Realm.py create mode 100644 core/SNAPI/RealtimeCall.py create mode 100644 core/SNAPI/Sticker.py diff --git a/core/SNAPI/PostTag.py b/core/SNAPI/PostTag.py index bb7fe2d..c4fa394 100644 --- a/core/SNAPI/PostTag.py +++ b/core/SNAPI/PostTag.py @@ -1,6 +1,6 @@ from ProjectCfg import DOMAIN from CallServer import _make_request -from typing import List,Any,Optional,Dict +from typing import Optional ###==========================帖子标签管理============================ def GetPostTags(Authorization: str, query: Optional[str] = None, offset: int = 0, take: int = 20, order: Optional[str] = None) -> dict: diff --git a/core/SNAPI/Publisher.py b/core/SNAPI/Publisher.py index 54baa59..ae2e957 100644 --- a/core/SNAPI/Publisher.py +++ b/core/SNAPI/Publisher.py @@ -1,6 +1,6 @@ from ProjectCfg import DOMAIN from CallServer import _make_request -from typing import List,Any,Optional,Dict +from typing import Optional ###==========================发布者管理============================ def GetPublisher(Authorization: str, name: str) -> dict: """获取发布者信息""" diff --git a/core/SNAPI/Realm.py b/core/SNAPI/Realm.py new file mode 100644 index 0000000..a4a9d7a --- /dev/null +++ b/core/SNAPI/Realm.py @@ -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) diff --git a/core/SNAPI/RealtimeCall.py b/core/SNAPI/RealtimeCall.py new file mode 100644 index 0000000..fdc90dd --- /dev/null +++ b/core/SNAPI/RealtimeCall.py @@ -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) \ No newline at end of file diff --git a/core/SNAPI/Sticker.py b/core/SNAPI/Sticker.py new file mode 100644 index 0000000..876c9ad --- /dev/null +++ b/core/SNAPI/Sticker.py @@ -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]) \ No newline at end of file