Skip to content

Commit c7c2b63

Browse files
authored
Merge pull request #118 from MxEmerson/master
2 parents ae6cf1f + 7135778 commit c7c2b63

File tree

10 files changed

+42
-38
lines changed

10 files changed

+42
-38
lines changed

src/common/utils/rpc/__init__.py

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
import json
22
import grpc
3-
from typing import List, Dict, Tuple, Optional, Type, TypeVar, Any
3+
from typing import List, Dict, Tuple, Optional, Any
44
from src.common.utils.rpc import pymongo_rpc_pb2, pymongo_rpc_pb2_grpc
55
from src.common.config import plugin_config
66

77

8-
T = TypeVar('T')
9-
10-
118
class CollectionProxy:
12-
def __init__(self, rpc_client: Type['MongoClient'], collection_name: str):
9+
def __init__(self, rpc_client: 'MongoClient', collection_name: str):
1310
self.rpc_client = rpc_client
1411
self.collection_name = collection_name
1512

16-
def __getitem__(self: T, collection_name: str) -> T:
13+
def __getitem__(self, collection_name: str) -> 'CollectionProxy':
1714
return CollectionProxy(self.rpc_client, collection_name)
1815

1916
def find(self, filter: Dict = {}) -> List[Dict[str, Any]]:
@@ -39,7 +36,7 @@ def create_index(self, keys: List[Tuple], name: Optional[str] = None, default_la
3936

4037

4138
class MongoClient:
42-
def __init__(self, mongo_host: str, mongo_port: str, **kwargs):
39+
def __init__(self, mongo_host: str, mongo_port: int, **kwargs):
4340
self.channel = grpc.insecure_channel(f'{mongo_host}:{mongo_port}')
4441
self.stub = pymongo_rpc_pb2_grpc.MongoDBServiceStub(self.channel)
4542
self.metadata = [('authorization', plugin_config.rpc_token)]

src/plugins/auto_accept/__init__.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import nonebot
2-
from nonebot import on_command, on_request, on_notice, get_driver
3-
from nonebot.adapters.onebot.v11 import MessageSegment, Message, FriendRequestEvent, GroupRequestEvent, Bot
1+
from nonebot import on_request
2+
from nonebot.adapters.onebot.v11 import FriendRequestEvent, GroupRequestEvent, Bot
43
from nonebot.typing import T_State
54

65
from src.common.config import BotConfig, GroupConfig, UserConfig
@@ -12,7 +11,7 @@
1211

1312

1413
@request_cmd.handle()
15-
async def handle_request(bot: Bot, event: GroupRequestEvent, state: T_State):
14+
async def handle_group_request(bot: Bot, event: GroupRequestEvent, state: T_State):
1615
if event.sub_type == 'invite':
1716
if GroupConfig(event.group_id).is_banned() or UserConfig(event.user_id).is_banned():
1817
await event.reject(bot)
@@ -24,11 +23,12 @@ async def handle_request(bot: Bot, event: GroupRequestEvent, state: T_State):
2423

2524

2625
@request_cmd.handle()
27-
async def handle_request(bot: Bot, event: FriendRequestEvent, state: T_State):
26+
async def handle_friend_request(bot: Bot, event: FriendRequestEvent, state: T_State):
2827
if UserConfig(event.user_id).is_banned():
2928
await event.reject(bot)
3029
return
3130

3231
bot_config = BotConfig(event.self_id)
33-
if bot_config.is_admin_of_bot(event.user_id): # or bot_config.auto_accept(): # 自动加好友太容易被封号了,先关了
32+
# or bot_config.auto_accept(): # 自动加好友太容易被封号了,先关了
33+
if bot_config.is_admin_of_bot(event.user_id):
3434
await event.approve(bot)

src/plugins/block/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import time
44
from typing import List, Union
55

6-
import nonebot
76
from nonebot import get_bots
87
from nonebot.adapters import Bot
98
from nonebot.adapters.onebot.v11 import GroupIncreaseNoticeEvent, GroupMessageEvent, PokeNotifyEvent, permission
@@ -36,7 +35,8 @@ def refresh_accounts(self) -> None:
3635
onebot_accounts: list[int] = [
3736
int(self_id) for self_id, bot in get_bots().items() if self_id.isnumeric() and bot.type == 'OneBot V11'
3837
]
39-
self.accounts = list(set(go_cqhttp_plugin_accounts + onebot_accounts))
38+
self.accounts = list(
39+
set(go_cqhttp_plugin_accounts + onebot_accounts))
4040

4141
async def is_other_bot(self, bot: Bot, event: GroupMessageEvent, state: T_State) -> bool:
4242
self.refresh_accounts()

src/plugins/chat/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from asyncer import asyncify
2-
from nonebot.adapters.onebot.v11 import MessageSegment, Message, permission, GroupMessageEvent
2+
from nonebot.adapters.onebot.v11 import MessageSegment, permission, GroupMessageEvent
33
from nonebot.adapters import Bot, Event
44
from nonebot.rule import Rule
55
from nonebot.typing import T_State
6-
from nonebot import on_message, get_driver, logger
6+
from nonebot import on_message, logger
77

88
from src.common.config import BotConfig, GroupConfig, plugin_config
99

@@ -30,14 +30,14 @@
3030

3131

3232
@BotConfig.handle_sober_up
33-
def on_sober_up(bot_id, group_id, drunkenness) -> bool:
33+
def on_sober_up(bot_id, group_id, drunkenness) -> None:
3434
session = f'{bot_id}_{group_id}'
3535
logger.info(
3636
f'bot [{bot_id}] sober up in group [{group_id}], clear session [{session}]')
3737
chat.del_session(session)
3838

3939

40-
def is_drunk(bot: Bot, event: Event, state: T_State) -> bool:
40+
def is_drunk(bot: Bot, event: Event, state: T_State) -> int:
4141
config = BotConfig(event.self_id, event.group_id)
4242
return config.drunkenness()
4343

src/plugins/drink/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import random
22
import asyncio
33

4-
from nonebot import on_message, require, get_bot, logger, get_driver
4+
from nonebot import on_message, require, logger
55
from nonebot.exception import ActionFailed
66
from nonebot.typing import T_State
7-
from nonebot.rule import keyword, to_me, Rule
8-
from nonebot.adapters import Bot, Event
7+
from nonebot.rule import Rule
8+
from nonebot.adapters import Bot
99
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent
1010
from nonebot.adapters.onebot.v11 import permission
11-
from src.common.config import BotConfig, GroupConfig
11+
from src.common.config import BotConfig
1212

1313

1414
async def is_drink_msg(bot: Bot, event: GroupMessageEvent, state: T_State) -> bool:

src/plugins/greeting/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import asyncio
33

44
from pathlib import Path
5-
from nonebot import on_command, on_message, on_notice, get_driver, get_bot
5+
from nonebot import on_message, on_notice, get_bot
66
from nonebot.adapters.onebot.v11 import MessageSegment, Message, permission, GroupMessageEvent
7-
from nonebot.rule import keyword, startswith, to_me, Rule
7+
from nonebot.rule import to_me, Rule
88
from nonebot.typing import T_State
99
from nonebot.adapters import Bot, Event
1010
from src.common.config import BotConfig, GroupConfig, UserConfig

src/plugins/repeater/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
import time
55
import threading
66

7-
from nonebot import on_message, on_notice, require, get_bot, logger, get_driver
7+
from nonebot import on_message, on_notice, require, get_bot, logger
88
from nonebot.exception import ActionFailed
99
from nonebot.typing import T_State
1010
from nonebot.rule import keyword, to_me, Rule
1111
from nonebot.adapters import Bot, Event
12-
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent, GroupRecallNoticeEvent
12+
from nonebot.adapters.onebot.v11 import GroupMessageEvent, GroupRecallNoticeEvent
1313
from nonebot.adapters.onebot.v11 import permission, Message, MessageSegment
1414
from nonebot.permission import Permission
1515
from nonebot.permission import SUPERUSER

src/plugins/roulette/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import asyncio
22
from collections import defaultdict
33
from typing import Awaitable, Optional
4-
from nonebot import on_message, on_request, get_bot, logger, get_driver
4+
from nonebot import on_message, on_request, get_bot, logger
55
from nonebot.typing import T_State
6-
from nonebot.rule import keyword, to_me, Rule
6+
from nonebot.rule import Rule
77
from nonebot.adapters import Bot, Event
88
from nonebot.adapters.onebot.v11 import GroupMessageEvent, GroupRequestEvent
9-
from nonebot.adapters.onebot.v11 import MessageSegment, Message, permission, GroupMessageEvent
9+
from nonebot.adapters.onebot.v11 import MessageSegment, permission, GroupMessageEvent
1010
from nonebot.permission import Permission
1111
from src.common.config import BotConfig, GroupConfig
1212

@@ -164,7 +164,7 @@ async def shot(self_id: int, user_id: int, group_id: int) -> Optional[Awaitable[
164164
if self_role == 'owner': # 牛牛是群主不能退群,不然群就解散了
165165
return None
166166

167-
async def group_leave():
167+
async def group_leave() -> None:
168168
await get_bot(str(self_id)).call_api('set_group_leave', **{
169169
'group_id': group_id
170170
})

src/plugins/sing/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import time
66
import os
77

8-
from nonebot import get_driver, on_message, require, logger
8+
from nonebot import on_message, require, logger
99
from nonebot.typing import T_State
1010
from nonebot.rule import Rule
1111
from nonebot.adapters import Bot, Event
@@ -34,10 +34,10 @@ async def is_to_sing(bot: Bot, event: Event, state: T_State) -> bool:
3434
text = event.get_plaintext()
3535
if not text:
3636
return False
37-
37+
3838
if not SING_CMD in text and not any([cmd in text for cmd in SING_CONTINUE_CMDS]):
3939
return False
40-
40+
4141
if text.endswith(SING_CMD):
4242
return False
4343

@@ -79,7 +79,7 @@ async def is_to_sing(bot: Bot, event: Event, state: T_State) -> bool:
7979
progress = GroupConfig(group_id=event.group_id).sing_progress()
8080
if not progress:
8181
return False
82-
82+
8383
song_id = progress['song_id']
8484
chunk_index = progress['chunk_index']
8585
key_val = progress['key']

src/plugins/sing/ncm_loader.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@ class Config(BaseModel, extra=Extra.ignore):
1313
ncm_ctcode: int = 86
1414

1515

16-
config = Config.parse_obj(get_driver().config)
16+
try:
17+
# pydantic v2
18+
from nonebot import get_plugin_config
19+
config = get_plugin_config(Config)
20+
except ImportError:
21+
# pydantic v1
22+
config = Config.parse_obj(get_driver().config)
23+
1724

1825
if config.ncm_phone and config.ncm_password:
1926
ncm.login.LoginViaCellphone(
@@ -72,7 +79,7 @@ def get_song_id(song_name: str):
7279

7380
if res["result"]["songCount"] == 0:
7481
return None
75-
82+
7683
for song in res["result"]["songs"]:
7784
privilege = song["privilege"]
7885
if "chargeInfoList" not in privilege:
@@ -86,5 +93,5 @@ def get_song_id(song_name: str):
8693
continue
8794

8895
return song["id"]
89-
96+
9097
return None

0 commit comments

Comments
 (0)