Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
Wybxc committed May 20, 2022
1 parent ad64c8f commit 8c0fd08
Show file tree
Hide file tree
Showing 18 changed files with 180 additions and 188 deletions.
21 changes: 1 addition & 20 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,5 @@
"reportMissingTypeStubs": "none",
"reportUnnecessaryIsInstance": "none"
},
"cSpell.words": [
"aiofiles",
"ASGI",
"CHAOJIHUIYUAN",
"coro",
"coros",
"HRTX",
"invitor",
"isawaitable",
"mirai",
"Mirai",
"MISRO",
"pydantic",
"Relogin",
"Starlette",
"TMIM",
"Unmute",
"uvicorn",
"Yiri"
]
"python.linting.mypyEnabled": false
}
26 changes: 11 additions & 15 deletions mirai/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,24 @@
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from mirai.adapters import (
Adapter, ComposeAdapter, HTTPAdapter, WebHookAdapter, WebSocketAdapter
)
from mirai.adapters import (Adapter, ComposeAdapter, HTTPAdapter,
WebHookAdapter, WebSocketAdapter)
else:
from mirai.adapters import Adapter

from mirai.bot import LifeSpan, Mirai, MiraiRunner, Shutdown, Startup
from mirai.bus import EventBus
from mirai.colorlog import ColoredFormatter
from mirai.exceptions import (
ApiError, NetworkError, SkipExecution, StopExecution, StopPropagation
)
from mirai.exceptions import (ApiError, NetworkError, SkipExecution,
StopExecution, StopPropagation)
from mirai.interface import ApiMethod
from mirai.models.events import (
Event, FriendMessage, GroupMessage, MessageEvent, StrangerMessage,
TempMessage
)
from mirai.models.message import (
App, At, AtAll, Dice, Face, File, FlashImage, Forward, ForwardMessageNode,
Image, Json, MessageChain, MiraiCode, MusicShare, MusicShareKind, Plain,
Poke, PokeNames, Unknown, Voice, Xml, deserialize, serialize
)
from mirai.models.events import (Event, FriendMessage, GroupMessage,
MessageEvent, StrangerMessage, TempMessage)
from mirai.models.message import (App, At, AtAll, Dice, Face, File, FlashImage,
Forward, ForwardMessageNode, Image, Json,
MessageChain, MiraiCode, MusicShare,
MusicShareKind, Plain, Poke, PokeNames,
Unknown, Voice, Xml, deserialize, serialize)

__all__ = [
'Adapter', 'ApiError', 'ApiMethod', 'App', 'At', 'AtAll', 'ComposeAdapter',
Expand Down
16 changes: 7 additions & 9 deletions mirai/adapters/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ async def call_api(
async with httpx.AsyncClient(
base_url=self.adapter.host_name, headers=self.headers
) as client:
if method == ApiMethod.GET or method == ApiMethod.RESTGET:
if method in [ApiMethod.GET, ApiMethod.RESTGET]:
return await _get(client, f'/{api}', params)
if method == ApiMethod.POST or method == ApiMethod.RESTPOST:
if method in [ApiMethod.POST, ApiMethod.RESTPOST]:
return await _post(client, f'/{api}', params)
if method == ApiMethod.MULTIPART:
return await _post_multipart(
Expand Down Expand Up @@ -185,16 +185,14 @@ def __init__(
self._host = host
self._port = port

if host[:2] == '//':
host = 'http:' + host
elif host[:8] == 'https://':
if host.startswith('//'):
host = f'http:{host}'
elif host.startswith('https://'):
raise NetworkError('不支持 HTTPS!')
elif host[:7] != 'http://':
host = 'http://' + host

if host[-1:] == '/':
host = host[:-1]
host = f'http://{host}'

host = host.removesuffix('/')
self.host_name = f'{host}:{port}'

self.poll_interval = poll_interval
Expand Down
13 changes: 6 additions & 7 deletions mirai/adapters/websocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,15 @@
import time
from typing import Dict, Optional

from mirai.adapters.base import (
Adapter, AdapterInterface, Session, error_handler_async, json_dumps
)
from websockets.client import WebSocketClientProtocol, connect
from websockets.exceptions import (ConnectionClosed, ConnectionClosedOK,
InvalidURI)

from mirai.adapters.base import (Adapter, AdapterInterface, Session,
error_handler_async, json_dumps)
from mirai.exceptions import ApiError, NetworkError
from mirai.interface import ApiMethod
from mirai.utils import Tasks
from websockets.client import WebSocketClientProtocol, connect
from websockets.exceptions import (
ConnectionClosed, ConnectionClosedOK, InvalidURI
)

logger = logging.getLogger(__name__)

Expand Down
10 changes: 4 additions & 6 deletions mirai/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
import contextlib
import inspect
import logging
from typing import (
Any, Awaitable, Callable, Dict, Iterable, List, Optional, Set, Union, cast
)
from typing import (Any, Awaitable, Callable, Dict, Iterable, List, Optional,
Set, Union, cast)

from mirai.adapters.base import Adapter, AdapterInterface, Session
from mirai.asgi import ASGI, asgi_serve
Expand All @@ -18,9 +17,8 @@
from mirai.models.api import ApiModel
from mirai.models.api_impl import RespEvent
from mirai.models.bus import ModelEventBus
from mirai.models.entities import (
Entity, Friend, Group, GroupMember, Permission, RespOperate, Subject
)
from mirai.models.entities import (Entity, Friend, Group, GroupMember,
Permission, RespOperate, Subject)
from mirai.models.events import Event, MessageEvent, RequestEvent, TempMessage
from mirai.models.message import TMessage
from mirai.utils import Singleton, Tasks, async_
Expand Down
14 changes: 5 additions & 9 deletions mirai/bot.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
`mirai.bot` 模块的存根文件,用于补全代码提示。
"""
from pathlib import Path
from typing import (
Any, Awaitable, Callable, Dict, Iterable, List, Optional, Union, overload,
type_check_only
)
from typing import (Any, Awaitable, Callable, Dict, Iterable, List, Optional,
Union, overload, type_check_only)

from typing_extensions import Literal

Expand All @@ -15,15 +13,13 @@ from mirai.asgi import ASGI
from mirai.bus import EventBus, TEventHandler
from mirai.models.api import ApiModel
from mirai.models.api_impl import *
from mirai.models.entities import (
Entity, Friend, Group, GroupConfigModel, GroupMember, MemberInfoModel,
Profile, Subject
)
from mirai.models.entities import (Entity, Friend, Group, GroupConfigModel,
GroupMember, MemberInfoModel, Profile,
Subject)
from mirai.models.events import MessageEvent, RequestEvent
from mirai.models.message import Image, MessageChain, MessageComponent, Voice
from mirai.utils import Singleton


class LifeSpan():
type: str

Expand Down
10 changes: 4 additions & 6 deletions mirai/bus.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,11 @@
import functools
import inspect
import logging
from typing import (
Any, Awaitable, Callable, Coroutine, Dict, List, Optional, cast
)
from typing import (Any, Awaitable, Callable, Coroutine, Dict, List, Optional,
cast)

from mirai.exceptions import (
SkipExecution, StopExecution, StopPropagation, print_exception
)
from mirai.exceptions import (SkipExecution, StopExecution, StopPropagation,
print_exception)
from mirai.interface import EventInterface
from mirai.utils import PriorityDict, async_with_exception

Expand Down
7 changes: 5 additions & 2 deletions mirai/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,11 @@ def __init__(self, err: ValidationError):
try:
errors = [f'在调用 `{model.Info.alias}` 时出错。']
for error in self._err.errors():
parameter_name = error['loc'][0]
parameter_name = re.sub(r'[A-Z]', lambda m: f'_{m.group(0).lower()}', parameter_name)
parameter_name = str(error['loc'][0])
parameter_name = re.sub(
r'[A-Z]', lambda m: f'_{m.group(0).lower()}',
parameter_name
)

message = error['msg']
errors.append(f'参数 `{parameter_name}` 类型错误,原因:{message}')
Expand Down
63 changes: 36 additions & 27 deletions mirai/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,33 +8,42 @@
model 层使用 pydantic 进行数据解析。
"""
from mirai.models.bus import ModelEventBus
from mirai.models.entities import (
Client, Entity, Friend, Group, GroupMember, Permission
)
from mirai.models.events import (
BotEvent, BotGroupPermissionChangeEvent, BotInvitedJoinGroupRequestEvent,
BotJoinGroupEvent, BotLeaveEventActive, BotLeaveEventKick, BotMuteEvent,
BotOfflineEventActive, BotOfflineEventDropped, BotOfflineEventForce,
BotOnlineEvent, BotReloginEvent, BotUnmuteEvent, ClientKind, CommandEvent,
CommandExecutedEvent, Event, FriendEvent, FriendInputStatusChangedEvent,
FriendMessage, FriendNickChangedEvent, FriendRecallEvent,
GroupAllowAnonymousChatEvent, GroupAllowConfessTalkEvent,
GroupAllowMemberInviteEvent, GroupEntranceAnnouncementChangeEvent,
GroupEvent, GroupMessage, GroupMuteAllEvent, GroupNameChangeEvent,
GroupRecallEvent, MemberCardChangeEvent, MemberHonorChangeEvent,
MemberJoinEvent, MemberJoinRequestEvent, MemberLeaveEventKick,
MemberLeaveEventQuit, MemberMuteEvent, MemberPermissionChangeEvent,
MemberSpecialTitleChangeEvent, MemberUnmuteEvent, MessageEvent,
NewFriendRequestEvent, NudgeEvent, OtherClientEvent, OtherClientMessage,
OtherClientOfflineEvent, OtherClientOnlineEvent, RequestEvent,
StrangerMessage, TempMessage
)
from mirai.models.message import (
App, At, AtAll, Dice, Face, File, FlashImage, Forward, ForwardMessageNode,
Image, Json, MessageChain, MessageComponent, MiraiCode, MusicShare,
MusicShareKind, Plain, Poke, PokeNames, Unknown, Voice, Xml, deserialize,
serialize
)
from mirai.models.entities import (Client, Entity, Friend, Group, GroupMember,
Permission)
from mirai.models.events import (BotEvent, BotGroupPermissionChangeEvent,
BotInvitedJoinGroupRequestEvent,
BotJoinGroupEvent, BotLeaveEventActive,
BotLeaveEventKick, BotMuteEvent,
BotOfflineEventActive, BotOfflineEventDropped,
BotOfflineEventForce, BotOnlineEvent,
BotReloginEvent, BotUnmuteEvent, ClientKind,
CommandEvent, CommandExecutedEvent, Event,
FriendEvent, FriendInputStatusChangedEvent,
FriendMessage, FriendNickChangedEvent,
FriendRecallEvent,
GroupAllowAnonymousChatEvent,
GroupAllowConfessTalkEvent,
GroupAllowMemberInviteEvent,
GroupEntranceAnnouncementChangeEvent,
GroupEvent, GroupMessage, GroupMuteAllEvent,
GroupNameChangeEvent, GroupRecallEvent,
MemberCardChangeEvent, MemberHonorChangeEvent,
MemberJoinEvent, MemberJoinRequestEvent,
MemberLeaveEventKick, MemberLeaveEventQuit,
MemberMuteEvent, MemberPermissionChangeEvent,
MemberSpecialTitleChangeEvent,
MemberUnmuteEvent, MessageEvent,
NewFriendRequestEvent, NudgeEvent,
OtherClientEvent, OtherClientMessage,
OtherClientOfflineEvent,
OtherClientOnlineEvent, RequestEvent,
StrangerMessage, TempMessage)
from mirai.models.message import (App, At, AtAll, Dice, Face, File, FlashImage,
Forward, ForwardMessageNode, Image, Json,
MessageChain, MessageComponent, MiraiCode,
MusicShare, MusicShareKind, Plain, Poke,
PokeNames, Unknown, Voice, Xml, deserialize,
serialize)

__all__ = [
'Entity', 'Friend', 'Group', 'GroupMember', 'Permission', 'Client',
Expand Down
5 changes: 2 additions & 3 deletions mirai/models/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@

from mirai.exceptions import ApiParametersError
from mirai.interface import ApiInterface, ApiMethod
from mirai.models.base import (
MiraiBaseModel, MiraiIndexedMetaclass, MiraiIndexedModel
)
from mirai.models.base import (MiraiBaseModel, MiraiIndexedMetaclass,
MiraiIndexedModel)

logger = logging.getLogger(__name__)

Expand Down
24 changes: 10 additions & 14 deletions mirai/models/api_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,17 @@

from pydantic import Field, validator

from mirai.models.api import (
ApiBaseModel, ApiGet, ApiPost, ApiResponse, ApiRest
)
from mirai.models.api import (ApiBaseModel, ApiGet, ApiPost, ApiResponse,
ApiRest)
from mirai.models.base import MiraiBaseModel
from mirai.models.entities import (
FileProperties, Friend, Group, GroupConfigModel, GroupMember,
MemberInfoModel, Profile, RespOperate
)
from mirai.models.events import (
FriendMessage, GroupMessage, OtherClientMessage, RequestEvent,
StrangerMessage, TempMessage
)
from mirai.models.message import (
Image, MessageChain, MessageComponent, TMessage, Voice
)
from mirai.models.entities import (FileProperties, Friend, Group,
GroupConfigModel, GroupMember,
MemberInfoModel, Profile, RespOperate)
from mirai.models.events import (FriendMessage, GroupMessage,
OtherClientMessage, RequestEvent,
StrangerMessage, TempMessage)
from mirai.models.message import (Image, MessageChain, MessageComponent,
TMessage, Voice)


class About(ApiGet):
Expand Down
5 changes: 2 additions & 3 deletions mirai/models/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
from typing_extensions import Literal

from mirai.models.base import MiraiIndexedMetaclass, MiraiIndexedModel
from mirai.models.entities import (
Client, Entity, Friend, Group, GroupMember, Permission, Subject
)
from mirai.models.entities import (Client, Entity, Friend, Group, GroupMember,
Permission, Subject)
from mirai.models.message import MessageChain

TEventClass = TypeVar("TEventClass", bound='EventMetaclass')
Expand Down
16 changes: 8 additions & 8 deletions mirai/models/message/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"""
from typing import Iterable, Union

from mirai.models.message.base import (
MessageComponent, Plain, deserialize, serialize
)
from mirai.models.message.base import (MessageComponent, Plain, deserialize,
serialize)
from mirai.models.message.chain import MessageChain
from mirai.models.message.components import (
App, At, AtAll, Dice, Face, File, FlashImage, Forward, ForwardMessageNode,
Image, Json, MiraiCode, MusicShare, MusicShareKind, Poke, PokeNames,
Unknown, Voice, Xml
)
from mirai.models.message.components import (App, At, AtAll, Dice, Face, File,
FlashImage, Forward,
ForwardMessageNode, Image, Json,
MiraiCode, MusicShare,
MusicShareKind, Poke, PokeNames,
Unknown, Voice, Xml)

TMessage = Union[MessageChain, Iterable[Union[MessageComponent, str]],
MessageComponent, str]
Expand Down
7 changes: 3 additions & 4 deletions mirai/models/message/chain.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,10 +333,9 @@ def get(
def get_first(self,
t: Type[TMessageComponent]) -> Optional[TMessageComponent]:
"""获取消息链中第一个符合类型的消息组件。"""
for component in self:
if isinstance(component, t):
return component
return None
return next(
(component for component in self if isinstance(component, t)), None
)

@overload
def __getitem__(self, index: int) -> MessageComponent:
Expand Down
Loading

0 comments on commit 8c0fd08

Please sign in to comment.