mirror of
https://github.com/ChenXu233/nonebot_plugin_dialectlist.git
synced 2024-11-28 16:14:56 +08:00
✨ kkb!
This commit is contained in:
parent
53b2a33923
commit
e0ca7907c0
@ -23,7 +23,10 @@ from nonebot.params import Arg, Depends
|
|||||||
from nonebot.adapters import Bot, Event
|
from nonebot.adapters import Bot, Event
|
||||||
from nonebot.plugin import PluginMetadata, inherit_supported_adapters
|
from nonebot.plugin import PluginMetadata, inherit_supported_adapters
|
||||||
from nonebot_plugin_alconna import (
|
from nonebot_plugin_alconna import (
|
||||||
|
At,
|
||||||
Args,
|
Args,
|
||||||
|
Field,
|
||||||
|
Match,
|
||||||
Option,
|
Option,
|
||||||
Alconna,
|
Alconna,
|
||||||
on_alconna,
|
on_alconna,
|
||||||
@ -87,10 +90,53 @@ async def _build_cache(bot: Bot, event: Event):
|
|||||||
|
|
||||||
b_cmd = on_alconna(
|
b_cmd = on_alconna(
|
||||||
Alconna(
|
Alconna(
|
||||||
"看看他的B话",
|
"看看B话",
|
||||||
)
|
Args["at", [str, At], Field(completion=lambda: "请想要查询的人的QQ号")],
|
||||||
|
Option("-g|--group_id", Args["group_id?", str]),
|
||||||
|
Option("-k|--keyword", Args["keyword?", str])
|
||||||
|
),
|
||||||
|
aliases={"kkb"},
|
||||||
|
use_cmd_start=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@b_cmd.handle()
|
||||||
|
async def handle_b_cmd(
|
||||||
|
at:Match[str|At],
|
||||||
|
group_id: Match[str],
|
||||||
|
keyword: Match[str],
|
||||||
|
session: Session = Depends(extract_session),
|
||||||
|
):
|
||||||
|
id = at.result
|
||||||
|
if isinstance(id, At):
|
||||||
|
id = id.target
|
||||||
|
if group_id.available:
|
||||||
|
gid = group_id.result
|
||||||
|
else:
|
||||||
|
gid = session.id2
|
||||||
|
|
||||||
|
if not gid:
|
||||||
|
await b_cmd.finish("请指定群号。")
|
||||||
|
|
||||||
|
if keyword.available:
|
||||||
|
keywords = keyword.result
|
||||||
|
else:
|
||||||
|
keywords = None
|
||||||
|
|
||||||
|
messages = await get_message_records(
|
||||||
|
id1s=[id],
|
||||||
|
id2s=[gid],
|
||||||
|
id_type=SessionIdType.GROUP,
|
||||||
|
include_bot_id=False,
|
||||||
|
include_bot_type=False,
|
||||||
|
types=["message"], # 排除机器人自己发的消息
|
||||||
|
exclude_id1s=plugin_config.excluded_people,
|
||||||
|
)
|
||||||
|
d = msg_counter(messages, keywords)
|
||||||
|
rank = got_rank(d)
|
||||||
|
|
||||||
|
await saa.Text(f"该用户在群{gid}的B话数量为{rank[0][1]}。").send(reply=True)
|
||||||
|
|
||||||
|
|
||||||
rank_cmd = on_alconna(
|
rank_cmd = on_alconna(
|
||||||
Alconna(
|
Alconna(
|
||||||
"B话榜",
|
"B话榜",
|
||||||
|
@ -94,7 +94,7 @@ def msg_counter(
|
|||||||
logger.info("wow , there are {} msgs to count !!!".format(msg_len))
|
logger.info("wow , there are {} msgs to count !!!".format(msg_len))
|
||||||
|
|
||||||
for i in msg_list:
|
for i in msg_list:
|
||||||
logger.debug(f"processing msg {i.plain_text}")
|
# logger.debug(f"processing msg {i.plain_text}")
|
||||||
if keyword:
|
if keyword:
|
||||||
if keyword not in i.plain_text:
|
if keyword not in i.plain_text:
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user