🔀 Merge pull request #138

PreRelease 2.0.0a8.post2
This commit is contained in:
Ju4tCode 2021-01-02 04:10:10 -06:00 committed by GitHub
commit 3ea2c27e17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 15 additions and 11 deletions

View File

@ -1,4 +1,4 @@
[ [
"2.0.0a8.post1", "2.0.0a8.post2",
"2.0.0a7" "2.0.0a7"
] ]

View File

@ -421,19 +421,19 @@ class Bot(BaseBot):
message = escape(message) if isinstance(message, str) else message message = escape(message) if isinstance(message, str) else message
msg = message if isinstance(message, Message) else Message(message) msg = message if isinstance(message, Message) else Message(message)
at_sender = at_sender and hasattr(event, "user_id") at_sender = at_sender and getattr(event, "user_id", None)
params = {} params = {}
if hasattr(event, "user_id"): if getattr(event, "user_id", None):
params["user_id"] = getattr(event, "user_id") params["user_id"] = getattr(event, "user_id")
if hasattr(event, "group_id"): if getattr(event, "group_id", None):
params["group_id"] = getattr(event, "group_id") params["group_id"] = getattr(event, "group_id")
params.update(kwargs) params.update(kwargs)
if "message_type" not in params: if "message_type" not in params:
if "group_id" in params: if params.get("group_id", None):
params["message_type"] = "group" params["message_type"] = "group"
elif "user_id" in params: elif params.get("user_id", None):
params["message_type"] = "private" params["message_type"] = "private"
else: else:
raise ValueError("Cannot guess message type to reply!") raise ValueError("Cannot guess message type to reply!")

View File

@ -117,8 +117,7 @@ async def _check_matcher(priority: int, bot: "Bot", event: "Event",
return None return None
async def _check_expire(Matcher: Type[Matcher]) -> Optional[Type[Matcher]]: async def _check_expire(Matcher: Type[Matcher]) -> Optional[Type[Matcher]]:
if Matcher.temp or (Matcher.expire_time and if Matcher.expire_time and datetime.now() > Matcher.expire_time:
datetime.now() > Matcher.expire_time):
return Matcher return Matcher
return None return None
@ -128,14 +127,19 @@ async def _check_matcher(priority: int, bot: "Bot", event: "Event",
checking_expire_tasks = [ checking_expire_tasks = [
_check_expire(Matcher) for Matcher in current_matchers _check_expire(Matcher) for Matcher in current_matchers
] ]
results = await asyncio.gather(*checking_tasks, return_exceptions=True) results = await asyncio.gather(*checking_tasks)
expired = await asyncio.gather(*checking_expire_tasks) expired = await asyncio.gather(*checking_expire_tasks)
for expired_matcher in filter(lambda x: x, expired): for expired_matcher in filter(lambda x: x, expired):
try: try:
matchers[priority].remove(expired_matcher) # type: ignore matchers[priority].remove(expired_matcher) # type: ignore
except Exception: except Exception:
pass pass
return filter(lambda x: x, results) for temp_matcher in filter(lambda x: x and x.temp, results):
try:
matchers[priority].remove(temp_matcher) # type: ignore
except Exception:
pass
return filter(lambda x: x, results) # type: ignore
async def _run_matcher(Matcher: Type[Matcher], bot: "Bot", event: "Event", async def _run_matcher(Matcher: Type[Matcher], bot: "Bot", event: "Event",

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "nonebot2" name = "nonebot2"
version = "2.0.0-alpha.8.post1" version = "2.0.0-alpha.8.post2"
description = "An asynchronous python bot framework." description = "An asynchronous python bot framework."
authors = ["yanyongyu <yanyongyu_1@126.com>"] authors = ["yanyongyu <yanyongyu_1@126.com>"]
license = "MIT" license = "MIT"