Skip to main content

Nonebot2 会话信息提取与会话id定义

Project description

nonebot

nonebot-plugin-session

Nonebot2 会话信息提取与会话 id 定义插件 ✨

license Python NoneBot pypi

本插件提供了一个统一的会话模型 Session,可以从不同适配器的 BotEvent 中提取与会话相关的属性

具体定义如下:

属性 类型 含义 备注
bot_id str 机器人 id
bot_type str 机器人类型(适配器名称)
platform str 平台 未知平台用 unknown 表示
level IntEnum 会话等级 目前分为 LEVEL0(无用户)、LEVEL1(单用户)、LEVEL2(单级群组)、LEVEL3(两级群组) 四类
id1 str 1 级 id 通常为 user_id
id2 str 2 级 id 通常为 单级群组中的 group_id,两级群组中的 channel_id
id3 str 3 级 id 通常为 两级群组中的 guild_id

同时,本插件提供了获取会话 id 的函数,可以按照不同的类型获取会话id,方便不同场景下的使用

Nonebot 适配器基类中也提供了 get_session_id 函数,但通常是 用户 id、群组 id 的组合,属于 “用户级别” 的 id,很多插件中需要用到不同级别的会话 id,如词云、词库等等

安装

  • 使用 nb-cli
nb plugin install nonebot_plugin_session
  • 使用 pip
pip install nonebot_plugin_session

使用

获取 Session

from nonebot_plugin_session import extract_session

@matcher.handle()
async def handle(bot: Bot, event: Event):
    session = extract_session(bot, event)

或使用依赖注入的形式:

from nonebot_plugin_session import EventSession

@matcher.handle()
async def handle(session: EventSession):
    ...

获取 session id

from nonebot_plugin_session import extract_session, SessionIdType

@matcher.handle()
async def handle(bot: Bot, event: Event):
    session = extract_session(bot, event)
    session_id = session.get_id(SessionIdType.GROUP)  # 获取 “群组级别” 的 session id

或使用依赖注入的形式:

from nonebot_plugin_session import SessionId, SessionIdType

@matcher.handle()
async def handle(session_id: str = SessionId(SessionIdType.GROUP)):
    ...

不同的 “会话级别” 与 “会话id类型” 下返回的 id 如下表所示:(不包含 bot_id 等属性的情况)

LEVEL0
(无用户)
LEVEL1
(单用户)
LEVEL2
(单级群组)
LEVEL3
(两级群组)
TYPE0 (GLOBAL) "" "" "" ""
TYPE1 (USER) "" "id1" "id1" "id1"
TYPE2 "" "id1" "id2" "id2"
TYPE3 "" "id1" "id2_id1" "id2_id1"
TYPE4 "" "id1" "id2" "id3"
TYPE5 "" "id1" "id2_id1" "id3_id1"
TYPE6 (GROUP) "" "id1" "id2" "id3_id2"
TYPE7 (GROUP_USER) "" "id1" "id2_id1" "id3_id2_id1"

支持的 adapter

  • OneBot v11
  • OneBot v12
  • Console
  • Kaiheila
  • Telegram
  • Feishu
  • RedProtocol
  • Discord
  • QQ
  • Satori
  • DoDo

相关插件

鸣谢

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_session-0.3.2.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

nonebot_plugin_session-0.3.2-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_session-0.3.2.tar.gz.

File metadata

  • Download URL: nonebot_plugin_session-0.3.2.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1025-azure

File hashes

Hashes for nonebot_plugin_session-0.3.2.tar.gz
Algorithm Hash digest
SHA256 da0dabe9108151052a6e83d9923068d2ec43a93810ad37b264ed65aee2c69f93
MD5 96cb83917c94ede61115f00916e56f1d
BLAKE2b-256 091a95a465074f566a1552c00a0045d9e67fea41401eaf6af3f7c88b644da0f1

See more details on using hashes here.

File details

Details for the file nonebot_plugin_session-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_session-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 785e74ff656e46d84c4dbbac125f9a9adebcc4b9ff7db700527e6e47d47aabd6
MD5 74850841cad9c23b057bc89a6748bedf
BLAKE2b-256 b28107c38c920dc6bab000a12d79af78482dcf0695f8a6e0b7b85fd993ef7483

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page