mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
✨ 添加自动同意群组请求 (#1848)
* ✨ 添加自动同意群组请求 * ➕ Add nonebot-plugin-waiter --------- Co-authored-by: BalconyJH <balconyjh@gmail.com>
This commit is contained in:
parent
41613c09a9
commit
aef2597b46
1130
poetry.lock
generated
1130
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -44,6 +44,7 @@ py-cpuinfo = "^9.0.0"
|
|||||||
nonebot-plugin-alconna = "^0.54.0"
|
nonebot-plugin-alconna = "^0.54.0"
|
||||||
tenacity = "^9.0.0"
|
tenacity = "^9.0.0"
|
||||||
nonebot-plugin-uninfo = ">0.4.1"
|
nonebot-plugin-uninfo = ">0.4.1"
|
||||||
|
nonebot-plugin-waiter = "^0.8.1"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
nonebug = "^0.4"
|
nonebug = "^0.4"
|
||||||
|
|||||||
@ -9,13 +9,13 @@ arclet-alconna==1.8.35 ; python_version >= "3.10" and python_version < "4.0"
|
|||||||
arrow==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
arrow==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
async-timeout==5.0.1 ; python_version >= "3.10" and python_version < "3.11.0"
|
async-timeout==5.0.1 ; python_version >= "3.10" and python_version < "3.11.0"
|
||||||
asyncpg==0.30.0 ; python_version >= "3.10" and python_version < "4.0"
|
asyncpg==0.30.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
attrs==24.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
attrs==25.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "4.0"
|
beautifulsoup4==4.13.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
bilireq==0.2.3.post0 ; python_version >= "3.10" and python_version < "4.0"
|
bilireq==0.2.3.post0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
binaryornot==0.4.4 ; python_version >= "3.10" and python_version < "4.0"
|
binaryornot==0.4.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
cashews==7.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
cashews==7.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
cattrs==23.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
cattrs==23.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
certifi==2024.12.14 ; python_version >= "3.10" and python_version < "4.0"
|
certifi==2025.1.31 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
cffi==1.17.1 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
cffi==1.17.1 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
||||||
chardet==5.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
chardet==5.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
charset-normalizer==3.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
charset-normalizer==3.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
@ -23,27 +23,27 @@ click==8.1.8 ; python_version >= "3.10" and python_version < "4.0"
|
|||||||
cn2an==0.5.23 ; python_version >= "3.10" and python_version < "4.0"
|
cn2an==0.5.23 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
|
colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
|
||||||
cookiecutter==2.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
cookiecutter==2.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
cryptography==44.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
cryptography==44.0.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
dateparser==1.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
dateparser==1.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
distlib==0.3.9 ; python_version >= "3.10" and python_version < "4.0"
|
distlib==0.3.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
ecdsa==0.19.0 ; python_version >= "3.10" and python_version < "4.0"
|
ecdsa==0.19.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "4.0"
|
exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
fastapi==0.115.6 ; python_version >= "3.10" and python_version < "4.0"
|
fastapi==0.115.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
feedparser==6.0.11 ; python_version >= "3.10" and python_version < "4.0"
|
feedparser==6.0.11 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
filelock==3.16.1 ; python_version >= "3.10" and python_version < "4.0"
|
filelock==3.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
greenlet==3.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
greenlet==3.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
grpcio==1.69.0 ; python_version >= "3.10" and python_version < "4.0"
|
grpcio==1.70.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
h11==0.14.0 ; python_version >= "3.10" and python_version < "4.0"
|
h11==0.14.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
httpcore==0.16.3 ; python_version >= "3.10" and python_version < "4.0"
|
httpcore==0.16.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
httptools==0.6.4 ; python_version >= "3.10" and python_version < "4.0"
|
httptools==0.6.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
httpx==0.23.3 ; python_version >= "3.10" and python_version < "4.0"
|
httpx==0.23.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
idna==3.10 ; python_version >= "3.10" and python_version < "4.0"
|
idna==3.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
imagehash==4.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
imagehash==4.3.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
importlib-metadata==8.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
importlib-metadata==8.6.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
iso8601==1.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
iso8601==1.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "4.0"
|
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
loguru==0.7.3 ; python_version >= "3.10" and python_version < "4.0"
|
loguru==0.7.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
lxml==5.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
lxml==5.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
markdown-it-py==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
markdown-it-py==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
markdown==3.7 ; python_version >= "3.10" and python_version < "4.0"
|
markdown==3.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
@ -58,28 +58,28 @@ nonebot-plugin-apscheduler==0.5.0 ; python_version >= "3.10" and python_version
|
|||||||
nonebot-plugin-htmlrender==0.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
nonebot-plugin-htmlrender==0.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
nonebot-plugin-session==0.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
nonebot-plugin-session==0.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
nonebot-plugin-uninfo==0.6.8 ; python_version >= "3.10" and python_version < "4.0"
|
nonebot-plugin-uninfo==0.6.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
nonebot-plugin-waiter==0.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
nonebot-plugin-waiter==0.8.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
nonebot2==2.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
nonebot2==2.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
noneprompt==0.1.9 ; python_version >= "3.10" and python_version < "4.0"
|
noneprompt==0.1.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
numpy==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
numpy==2.2.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pillow==10.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
pillow==10.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
platformdirs==4.3.6 ; python_version >= "3.10" and python_version < "4.0"
|
platformdirs==4.3.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
playwright==1.49.1 ; python_version >= "3.10" and python_version < "4.0"
|
playwright==1.50.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
proces==0.1.7 ; python_version >= "3.10" and python_version < "4.0"
|
proces==0.1.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
prompt-toolkit==3.0.48 ; python_version >= "3.10" and python_version < "4.0"
|
prompt-toolkit==3.0.50 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
propcache==0.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
propcache==0.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
protobuf==4.25.5 ; python_version >= "3.10" and python_version < "4.0"
|
protobuf==4.25.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0"
|
psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
py-cpuinfo==9.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
py-cpuinfo==9.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pyasn1==0.6.1 ; python_version >= "3.10" and python_version < "4.0"
|
pyasn1==0.6.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pycparser==2.22 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
pycparser==2.22 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
||||||
pydantic-core==2.27.2 ; python_version >= "3.10" and python_version < "4.0"
|
pydantic-core==2.27.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pydantic==2.10.4 ; python_version >= "3.10" and python_version < "4.0"
|
pydantic==2.10.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pyee==12.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
pyee==12.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pyfiglet==1.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
pyfiglet==1.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pygments==2.19.1 ; python_version >= "3.10" and python_version < "4.0"
|
pygments==2.19.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pygtrie==2.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
pygtrie==2.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pymdown-extensions==10.14 ; python_version >= "3.10" and python_version < "4.0"
|
pymdown-extensions==10.14.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pypika-tortoise==0.1.6 ; python_version >= "3.10" and python_version < "4.0"
|
pypika-tortoise==0.1.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pypinyin==0.51.0 ; python_version >= "3.10" and python_version < "4.0"
|
pypinyin==0.51.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
|
python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
@ -88,7 +88,7 @@ python-jose==3.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
|||||||
python-markdown-math==0.8 ; python_version >= "3.10" and python_version < "4.0"
|
python-markdown-math==0.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
python-multipart==0.0.9 ; python_version >= "3.10" and python_version < "4.0"
|
python-multipart==0.0.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
python-slugify==8.0.4 ; python_version >= "3.10" and python_version < "4.0"
|
python-slugify==8.0.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pytz==2024.2 ; python_version >= "3.10" and python_version < "4.0"
|
pytz==2025.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pywavelets==1.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
pywavelets==1.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
pyyaml==6.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
pyyaml==6.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
regex==2024.11.6 ; python_version >= "3.10" and python_version < "4.0"
|
regex==2024.11.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
@ -99,12 +99,12 @@ rich==13.9.4 ; python_version >= "3.10" and python_version < "4.0"
|
|||||||
rsa==4.9 ; python_version >= "3.10" and python_version < "4.0"
|
rsa==4.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
ruamel-yaml-clib==0.2.12 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "CPython"
|
ruamel-yaml-clib==0.2.12 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "CPython"
|
||||||
ruamel-yaml==0.18.10 ; python_version >= "3.10" and python_version < "4.0"
|
ruamel-yaml==0.18.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
scipy==1.15.0 ; python_version >= "3.10" and python_version < "4.0"
|
scipy==1.15.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
sgmllib3k==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
sgmllib3k==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
six==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
six==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
sniffio==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
sniffio==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
soupsieve==2.6 ; python_version >= "3.10" and python_version < "4.0"
|
soupsieve==2.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
starlette==0.41.3 ; python_version >= "3.10" and python_version < "4.0"
|
starlette==0.45.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
strenum==0.4.15 ; python_version >= "3.10" and python_version < "4.0"
|
strenum==0.4.15 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
tarina==0.6.8 ; python_version >= "3.10" and python_version < "4.0"
|
tarina==0.6.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
tenacity==9.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
tenacity==9.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
@ -114,16 +114,16 @@ tomlkit==0.13.2 ; python_version >= "3.10" and python_version < "4.0"
|
|||||||
tortoise-orm==0.20.1 ; python_version >= "3.10" and python_version < "4.0"
|
tortoise-orm==0.20.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
types-python-dateutil==2.9.0.20241206 ; python_version >= "3.10" and python_version < "4.0"
|
types-python-dateutil==2.9.0.20241206 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "4.0"
|
typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
tzdata==2024.2 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
|
tzdata==2025.1 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
|
||||||
tzlocal==5.2 ; python_version >= "3.10" and python_version < "4.0"
|
tzlocal==5.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
ujson==5.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
ujson==5.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
uvicorn==0.34.0 ; python_version >= "3.10" and python_version < "4.0"
|
uvicorn==0.34.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
uvloop==0.21.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy"
|
uvloop==0.21.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy"
|
||||||
virtualenv==20.28.1 ; python_version >= "3.10" and python_version < "4.0"
|
virtualenv==20.29.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
watchfiles==0.24.0 ; python_version >= "3.10" and python_version < "4.0"
|
watchfiles==0.24.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "4.0"
|
wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
websockets==14.1 ; python_version >= "3.10" and python_version < "4.0"
|
websockets==14.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
win32-setctime==1.2.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32"
|
win32-setctime==1.2.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32"
|
||||||
yarl==1.18.3 ; python_version >= "3.10" and python_version < "4.0"
|
yarl==1.18.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
zipp==3.21.0 ; python_version >= "3.10" and python_version < "4.0"
|
zipp==3.21.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||||
|
|||||||
@ -48,7 +48,11 @@ async def _(matcher: Matcher, message: UniMsg, session: EventSession):
|
|||||||
return
|
return
|
||||||
if text := message.extract_plain_text().strip():
|
if text := message.extract_plain_text().strip():
|
||||||
if plugin := await PluginInfo.get_or_none(
|
if plugin := await PluginInfo.get_or_none(
|
||||||
name=text, load_status=True, plugin_type=PluginType.NORMAL
|
name=text,
|
||||||
|
load_status=True,
|
||||||
|
plugin_type=PluginType.NORMAL,
|
||||||
|
block_type__isnull=True,
|
||||||
|
status=True,
|
||||||
):
|
):
|
||||||
image = None
|
image = None
|
||||||
if _path.exists():
|
if _path.exists():
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
|
import asyncio
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import random
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from nonebot import on_message, on_request
|
from nonebot import on_message, on_request
|
||||||
@ -40,7 +42,15 @@ __plugin_meta__ = PluginMetadata(
|
|||||||
help="是否自动同意好友添加",
|
help="是否自动同意好友添加",
|
||||||
type=bool,
|
type=bool,
|
||||||
default_value=False,
|
default_value=False,
|
||||||
)
|
),
|
||||||
|
RegisterConfig(
|
||||||
|
module="invite_manager",
|
||||||
|
key="AUTO_ADD_GROUP",
|
||||||
|
value=False,
|
||||||
|
help="是否自动同意邀请入群",
|
||||||
|
type=bool,
|
||||||
|
default_value=False,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
).to_dict(),
|
).to_dict(),
|
||||||
)
|
)
|
||||||
@ -81,6 +91,7 @@ async def _(bot: v12Bot | v11Bot, event: FriendRequestEvent, session: EventSessi
|
|||||||
"好友请求",
|
"好友请求",
|
||||||
target=event.user_id,
|
target=event.user_id,
|
||||||
)
|
)
|
||||||
|
await asyncio.sleep(random.randint(1, 10))
|
||||||
await bot.set_friend_add_request(flag=event.flag, approve=True)
|
await bot.set_friend_add_request(flag=event.flag, approve=True)
|
||||||
await FriendUser.create(
|
await FriendUser.create(
|
||||||
user_id=str(user["user_id"]), user_name=user["nickname"]
|
user_id=str(user["user_id"]), user_name=user["nickname"]
|
||||||
@ -104,7 +115,7 @@ async def _(bot: v12Bot | v11Bot, event: FriendRequestEvent, session: EventSessi
|
|||||||
await PlatformUtils.send_superuser(
|
await PlatformUtils.send_superuser(
|
||||||
bot,
|
bot,
|
||||||
f"*****一份好友申请*****\n"
|
f"*****一份好友申请*****\n"
|
||||||
f"ID: {f.id}"
|
f"ID: {f.id}\n"
|
||||||
f"昵称:{nickname}({event.user_id})\n"
|
f"昵称:{nickname}({event.user_id})\n"
|
||||||
f"自动同意:{'√' if base_config.get('AUTO_ADD_FRIEND') else '×'}\n"
|
f"自动同意:{'√' if base_config.get('AUTO_ADD_FRIEND') else '×'}\n"
|
||||||
f"日期:{str(datetime.now()).split('.')[0]}\n"
|
f"日期:{str(datetime.now()).split('.')[0]}\n"
|
||||||
@ -118,10 +129,10 @@ async def _(bot: v12Bot | v11Bot, event: FriendRequestEvent, session: EventSessi
|
|||||||
async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSession):
|
async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSession):
|
||||||
if event.sub_type != "invite":
|
if event.sub_type != "invite":
|
||||||
return
|
return
|
||||||
if str(event.user_id) in bot.config.superusers:
|
if str(event.user_id) in bot.config.superusers or base_config.get("AUTO_ADD_GROUP"):
|
||||||
try:
|
try:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"超级用户自动同意加入群聊",
|
"超级用户自动同意加入群聊或开启自动同意入群",
|
||||||
"群聊请求",
|
"群聊请求",
|
||||||
session=event.user_id,
|
session=event.user_id,
|
||||||
target=event.group_id,
|
target=event.group_id,
|
||||||
@ -154,12 +165,42 @@ async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSessio
|
|||||||
)
|
)
|
||||||
except ActionFailed as e:
|
except ActionFailed as e:
|
||||||
logger.error(
|
logger.error(
|
||||||
"超级用户自动同意加入群聊发生错误",
|
"超超级用户自动同意加入群聊或开启自动同意入群,加入群组发生错误",
|
||||||
"群聊请求",
|
"群聊请求",
|
||||||
session=event.user_id,
|
session=event.user_id,
|
||||||
target=event.group_id,
|
target=event.group_id,
|
||||||
e=e,
|
e=e,
|
||||||
)
|
)
|
||||||
|
if str(event.user_id) not in bot.config.superusers and base_config.get(
|
||||||
|
"AUTO_ADD_GROUP"
|
||||||
|
):
|
||||||
|
# 非超级用户邀请自动加入群组
|
||||||
|
nickname = await FriendUser.get_user_name(str(event.user_id))
|
||||||
|
f = await FgRequest.create(
|
||||||
|
request_type=RequestType.GROUP,
|
||||||
|
platform=session.platform,
|
||||||
|
bot_id=bot.self_id,
|
||||||
|
flag=event.flag,
|
||||||
|
user_id=str(event.user_id),
|
||||||
|
nickname=nickname,
|
||||||
|
group_id=str(event.group_id),
|
||||||
|
handle_type=RequestHandleType.APPROVE,
|
||||||
|
)
|
||||||
|
await PlatformUtils.send_superuser(
|
||||||
|
bot,
|
||||||
|
f"*****一份入群申请*****\n"
|
||||||
|
f"ID:{f.id}\n"
|
||||||
|
f"申请人:{nickname}({event.user_id})\n群聊:"
|
||||||
|
f"{event.group_id}\n邀请日期:{datetime.now().replace(microsecond=0)}\n"
|
||||||
|
"注: 该请求已自动同意",
|
||||||
|
)
|
||||||
|
await asyncio.sleep(random.randint(1, 5))
|
||||||
|
await bot.send_private_msg(
|
||||||
|
user_id=event.user_id,
|
||||||
|
message=f"管理员已开启自动同意群组邀请,请不要让{BotConfig.self_nickname}受委屈哦(狠狠监控)"
|
||||||
|
"\n在群组中 群组管理员与群主 允许使用管理员帮助"
|
||||||
|
"(包括ban与功能开关等)\n请在群组中发送 '管理员帮助'",
|
||||||
|
)
|
||||||
elif Timer.check(f"{event.user_id}:{event.group_id}"):
|
elif Timer.check(f"{event.user_id}:{event.group_id}"):
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"收录 用户[{event.user_id}] 群聊[{event.group_id}] 群聊请求",
|
f"收录 用户[{event.user_id}] 群聊[{event.group_id}] 群聊请求",
|
||||||
|
|||||||
@ -83,7 +83,7 @@ class SignManage:
|
|||||||
)
|
)
|
||||||
data_list.append(
|
data_list.append(
|
||||||
[
|
[
|
||||||
f"{i+1}",
|
f"{i + 1}",
|
||||||
(bytes, 30, 30) if user[3] == "qq" else "",
|
(bytes, 30, 30) if user[3] == "qq" else "",
|
||||||
uid2name.get(user[0]),
|
uid2name.get(user[0]),
|
||||||
user[1],
|
user[1],
|
||||||
|
|||||||
@ -16,6 +16,7 @@ from nonebot_plugin_alconna import (
|
|||||||
)
|
)
|
||||||
from nonebot_plugin_session import EventSession
|
from nonebot_plugin_session import EventSession
|
||||||
|
|
||||||
|
from zhenxun.configs.config import BotConfig
|
||||||
from zhenxun.configs.path_config import IMAGE_PATH
|
from zhenxun.configs.path_config import IMAGE_PATH
|
||||||
from zhenxun.configs.utils import PluginExtraData
|
from zhenxun.configs.utils import PluginExtraData
|
||||||
from zhenxun.models.fg_request import FgRequest
|
from zhenxun.models.fg_request import FgRequest
|
||||||
@ -134,14 +135,15 @@ async def _(
|
|||||||
"r": RequestHandleType.REFUSED,
|
"r": RequestHandleType.REFUSED,
|
||||||
"i": RequestHandleType.IGNORE,
|
"i": RequestHandleType.IGNORE,
|
||||||
}
|
}
|
||||||
|
req = None
|
||||||
handle_type = type_dict[handle[-1]]
|
handle_type = type_dict[handle[-1]]
|
||||||
try:
|
try:
|
||||||
if handle_type == RequestHandleType.APPROVE:
|
if handle_type == RequestHandleType.APPROVE:
|
||||||
await FgRequest.approve(bot, id)
|
req = await FgRequest.approve(bot, id)
|
||||||
if handle_type == RequestHandleType.REFUSED:
|
if handle_type == RequestHandleType.REFUSED:
|
||||||
await FgRequest.refused(bot, id)
|
req = await FgRequest.refused(bot, id)
|
||||||
if handle_type == RequestHandleType.IGNORE:
|
if handle_type == RequestHandleType.IGNORE:
|
||||||
await FgRequest.ignore(id)
|
req = await FgRequest.ignore(id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
await MessageUtils.build_message("未发现此id的请求...").finish(reply_to=True)
|
await MessageUtils.build_message("未发现此id的请求...").finish(reply_to=True)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -149,7 +151,14 @@ async def _(
|
|||||||
reply_to=True
|
reply_to=True
|
||||||
)
|
)
|
||||||
logger.info("处理请求", arparma.header_result, session=session)
|
logger.info("处理请求", arparma.header_result, session=session)
|
||||||
await MessageUtils.build_message("成功处理请求!").finish(reply_to=True)
|
await MessageUtils.build_message("成功处理请求!").send(reply_to=True)
|
||||||
|
if req and handle_type == RequestHandleType.APPROVE:
|
||||||
|
await bot.send_private_msg(
|
||||||
|
user_id=req.user_id,
|
||||||
|
message=f"管理员已同意此次群组邀请,请不要让{BotConfig.self_nickname}受委屈哦(狠狠监控)"
|
||||||
|
"\n在群组中 群组管理员与群主 允许使用管理员帮助"
|
||||||
|
"(包括ban与功能开关等)\n请在群组中发送 '管理员帮助'",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@_read_matcher.handle()
|
@_read_matcher.handle()
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import asyncio
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import time
|
import time
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ from zhenxun.configs.config import BotConfig
|
|||||||
from zhenxun.models.bot_connect_log import BotConnectLog
|
from zhenxun.models.bot_connect_log import BotConnectLog
|
||||||
from zhenxun.models.chat_history import ChatHistory
|
from zhenxun.models.chat_history import ChatHistory
|
||||||
from zhenxun.models.statistics import Statistics
|
from zhenxun.models.statistics import Statistics
|
||||||
|
from zhenxun.services.log import logger
|
||||||
from zhenxun.utils.platform import PlatformUtils
|
from zhenxun.utils.platform import PlatformUtils
|
||||||
|
|
||||||
from ....base_model import BaseResultModel, QueryModel
|
from ....base_model import BaseResultModel, QueryModel
|
||||||
@ -63,10 +65,17 @@ class ApiDataSource:
|
|||||||
bot_info = BotInfo(
|
bot_info = BotInfo(
|
||||||
self_id=bot.self_id, nickname=nickname, ava_url=ava_url, platform=platform
|
self_id=bot.self_id, nickname=nickname, ava_url=ava_url, platform=platform
|
||||||
)
|
)
|
||||||
group_list, _ = await PlatformUtils.get_group_list(bot, True)
|
try:
|
||||||
friend_list, _ = await PlatformUtils.get_friend_list(bot)
|
group, friend = await asyncio.gather(
|
||||||
bot_info.group_count = len(group_list)
|
PlatformUtils.get_group_list(bot, True),
|
||||||
bot_info.friend_count = len(friend_list)
|
PlatformUtils.get_friend_list(bot),
|
||||||
|
)
|
||||||
|
bot_info.group_count = len(group[0])
|
||||||
|
bot_info.friend_count = len(friend[0])
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning("获取bot好友/群组信息失败...", "WebUi", e=e)
|
||||||
|
bot_info.group_count = 0
|
||||||
|
bot_info.friend_count = 0
|
||||||
bot_info.day_call = await Statistics.filter(
|
bot_info.day_call = await Statistics.filter(
|
||||||
create_time__gte=now - timedelta(hours=now.hour, minutes=now.minute),
|
create_time__gte=now - timedelta(hours=now.hour, minutes=now.minute),
|
||||||
bot_id=bot.self_id,
|
bot_id=bot.self_id,
|
||||||
|
|||||||
@ -110,11 +110,18 @@ class ApiDataSource:
|
|||||||
create_time__gte=now - timedelta(hours=now.hour),
|
create_time__gte=now - timedelta(hours=now.hour),
|
||||||
).count()
|
).count()
|
||||||
# 群聊数量
|
# 群聊数量
|
||||||
select_bot.group_count = len(await PlatformUtils.get_group_list(select_bot.bot))
|
try:
|
||||||
# 好友数量
|
select_bot.group_count = len(
|
||||||
select_bot.friend_count = len(
|
(await PlatformUtils.get_group_list(select_bot.bot, True))[0]
|
||||||
await PlatformUtils.get_friend_list(select_bot.bot)
|
)
|
||||||
)
|
# 好友数量
|
||||||
|
select_bot.friend_count = len(
|
||||||
|
(await PlatformUtils.get_friend_list(select_bot.bot))[0]
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning("获取bot好友/群组信息失败...", "WebUi", e=e)
|
||||||
|
select_bot.group_count = 0
|
||||||
|
select_bot.friend_count = 0
|
||||||
select_bot.status = await BotConsole.get_bot_status(select_bot.self_id)
|
select_bot.status = await BotConsole.get_bot_status(select_bot.self_id)
|
||||||
# 连接时间
|
# 连接时间
|
||||||
select_bot.connect_time = bot_live.get(select_bot.self_id) or 0
|
select_bot.connect_time = bot_live.get(select_bot.self_id) or 0
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
from typing_extensions import Self
|
||||||
|
|
||||||
from nonebot.adapters import Bot
|
from nonebot.adapters import Bot
|
||||||
from tortoise import fields
|
from tortoise import fields
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ class FgRequest(Model):
|
|||||||
table_description = "好友群组请求"
|
table_description = "好友群组请求"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def approve(cls, bot: Bot, id: int):
|
async def approve(cls, bot: Bot, id: int) -> Self:
|
||||||
"""同意请求
|
"""同意请求
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
@ -48,10 +50,10 @@ class FgRequest(Model):
|
|||||||
异常:
|
异常:
|
||||||
NotFoundError: 未发现请求
|
NotFoundError: 未发现请求
|
||||||
"""
|
"""
|
||||||
await cls._handle_request(bot, id, RequestHandleType.APPROVE)
|
return await cls._handle_request(bot, id, RequestHandleType.APPROVE)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def refused(cls, bot: Bot, id: int):
|
async def refused(cls, bot: Bot, id: int) -> Self:
|
||||||
"""拒绝请求
|
"""拒绝请求
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
@ -61,10 +63,10 @@ class FgRequest(Model):
|
|||||||
异常:
|
异常:
|
||||||
NotFoundError: 未发现请求
|
NotFoundError: 未发现请求
|
||||||
"""
|
"""
|
||||||
await cls._handle_request(bot, id, RequestHandleType.REFUSED)
|
return await cls._handle_request(bot, id, RequestHandleType.REFUSED)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def ignore(cls, id: int):
|
async def ignore(cls, id: int) -> Self:
|
||||||
"""忽略请求
|
"""忽略请求
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
@ -73,7 +75,7 @@ class FgRequest(Model):
|
|||||||
异常:
|
异常:
|
||||||
NotFoundError: 未发现请求
|
NotFoundError: 未发现请求
|
||||||
"""
|
"""
|
||||||
await cls._handle_request(None, id, RequestHandleType.IGNORE)
|
return await cls._handle_request(None, id, RequestHandleType.IGNORE)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def expire(cls, id: int):
|
async def expire(cls, id: int):
|
||||||
@ -93,7 +95,7 @@ class FgRequest(Model):
|
|||||||
bot: Bot | None,
|
bot: Bot | None,
|
||||||
id: int,
|
id: int,
|
||||||
handle_type: RequestHandleType,
|
handle_type: RequestHandleType,
|
||||||
):
|
) -> Self:
|
||||||
"""处理请求
|
"""处理请求
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
@ -126,3 +128,4 @@ class FgRequest(Model):
|
|||||||
sub_type="invite",
|
sub_type="invite",
|
||||||
approve=handle_type == RequestHandleType.APPROVE,
|
approve=handle_type == RequestHandleType.APPROVE,
|
||||||
)
|
)
|
||||||
|
return req
|
||||||
|
|||||||
@ -204,9 +204,9 @@ class AsyncHttpx:
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_content(cls, url: str, **kwargs) -> bytes | None:
|
async def get_content(cls, url: str, **kwargs) -> bytes:
|
||||||
res = await cls.get(url, **kwargs)
|
res = await cls.get(url, **kwargs)
|
||||||
return res.content if res and res.status_code == 200 else None
|
return res.content
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def download_file(
|
async def download_file(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user