update mirai
This commit is contained in:
45
mirai.py
45
mirai.py
@@ -20,7 +20,7 @@ from json import dumps
|
|||||||
from time import time_ns
|
from time import time_ns
|
||||||
from miraiDatabase import MiraiSession, MiraiDatabase
|
from miraiDatabase import MiraiSession, MiraiDatabase
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import Tuple, Union
|
from typing import Tuple, Union, List
|
||||||
|
|
||||||
|
|
||||||
IMG_TYPE = Tuple[str, bytes]
|
IMG_TYPE = Tuple[str, bytes]
|
||||||
@@ -54,14 +54,16 @@ def login_required(f):
|
|||||||
return o
|
return o
|
||||||
|
|
||||||
|
|
||||||
def version_1_11_0_needed(f):
|
def version_needed(v: List[int]):
|
||||||
@wraps(f)
|
def i(f):
|
||||||
def o(*l, **k):
|
@wraps(f)
|
||||||
m: Mirai = l[0]
|
def o(*l, **k):
|
||||||
if m._version < [1, 11, 0]:
|
m: Mirai = l[0]
|
||||||
return None
|
if m._version < v:
|
||||||
return f(*l, **k)
|
return None
|
||||||
return o
|
return f(*l, **k)
|
||||||
|
return o
|
||||||
|
return i
|
||||||
|
|
||||||
|
|
||||||
def admin_needed(ind=1):
|
def admin_needed(ind=1):
|
||||||
@@ -180,6 +182,13 @@ class Mirai:
|
|||||||
return None
|
return None
|
||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
|
def _groupMkdir(self, sessionKey: str, group: int, dir: str):
|
||||||
|
r = self._post("/groupMkdir", {"sessionKey": sessionKey,
|
||||||
|
"group": group, "dir": dir})
|
||||||
|
if r is None:
|
||||||
|
return None
|
||||||
|
return r.json()
|
||||||
|
|
||||||
def _memberList(self, sessionKey: str, groupId: int):
|
def _memberList(self, sessionKey: str, groupId: int):
|
||||||
r = self._get("/memberList",
|
r = self._get("/memberList",
|
||||||
{"sessionKey": sessionKey, "target": groupId})
|
{"sessionKey": sessionKey, "target": groupId})
|
||||||
@@ -216,7 +225,9 @@ class Mirai:
|
|||||||
else:
|
else:
|
||||||
r = self._ses.post(url, data=json2data(json), files=files)
|
r = self._ses.post(url, data=json2data(json), files=files)
|
||||||
self._lastRequestTime = time_ns()
|
self._lastRequestTime = time_ns()
|
||||||
if r.status_code >= 400:
|
if r.status_code > 400:
|
||||||
|
if len(r.content) != 0:
|
||||||
|
return r
|
||||||
return None
|
return None
|
||||||
return r
|
return r
|
||||||
except:
|
except:
|
||||||
@@ -309,19 +320,19 @@ class Mirai:
|
|||||||
return self._friendList(self._kses.sessionId)
|
return self._friendList(self._kses.sessionId)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@version_1_11_0_needed
|
@version_needed([1, 11, 0])
|
||||||
def groupFileInfo(self, group: int, id: str):
|
def groupFileInfo(self, group: int, id: str):
|
||||||
"获取群文件详细信息"
|
"获取群文件详细信息"
|
||||||
return self._groupFileInfo(self._kses.sessionId, group, id)
|
return self._groupFileInfo(self._kses.sessionId, group, id)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@version_1_11_0_needed
|
@version_needed([1, 11, 0])
|
||||||
def groupFileList(self, group: int, dir: str = None):
|
def groupFileList(self, group: int, dir: str = None):
|
||||||
"获取群文件列表"
|
"获取群文件列表"
|
||||||
return self._groupFileList(self._kses.sessionId, group, dir)
|
return self._groupFileList(self._kses.sessionId, group, dir)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@version_1_11_0_needed
|
@version_needed([1, 11, 0])
|
||||||
@admin_needed()
|
@admin_needed()
|
||||||
def groupFileRename(self, group: int, id: str, rename: str):
|
def groupFileRename(self, group: int, id: str, rename: str):
|
||||||
"重命名群文件/目录"
|
"重命名群文件/目录"
|
||||||
@@ -332,6 +343,12 @@ class Mirai:
|
|||||||
"获取bot的群列表"
|
"获取bot的群列表"
|
||||||
return self._groupList(self._kses.sessionId)
|
return self._groupList(self._kses.sessionId)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@version_needed([1, 11, 4])
|
||||||
|
def groupMkdir(self, group: int, dir: str):
|
||||||
|
"创建群文件目录"
|
||||||
|
return self._groupMkdir(self._kses.sessionId, group, dir)
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
ses = self._db.getVerifedSession()
|
ses = self._db.getVerifedSession()
|
||||||
while ses is not None:
|
while ses is not None:
|
||||||
@@ -419,7 +436,7 @@ class Mirai:
|
|||||||
return self._uploadImage(self._kses.sessionId, "friend", img)
|
return self._uploadImage(self._kses.sessionId, "friend", img)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@version_1_11_0_needed
|
@version_needed([1, 11, 0])
|
||||||
@admin_needed()
|
@admin_needed()
|
||||||
def uploadGroupFileAndSend(self, groupId: int, path: str, file: FILE_TYPE):
|
def uploadGroupFileAndSend(self, groupId: int, path: str, file: FILE_TYPE):
|
||||||
"上传文件至群并返回FileId(测试需要管理员权限)"
|
"上传文件至群并返回FileId(测试需要管理员权限)"
|
||||||
|
|||||||
Reference in New Issue
Block a user