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
  • QQ Guild
  • Telegram
  • Feishu
  • RedProtocol
  • Discord
  • QQ
  • Satori

相关插件

鸣谢

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.2.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_session-0.2.1-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nonebot_plugin_session-0.2.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1015-azure

File hashes

Hashes for nonebot_plugin_session-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f3cbf4f7b180fda35fc035da6f474f3a1d06581f7498d40f52badad5ebdee36e
MD5 e617d1d892bf1b98647108f376171c04
BLAKE2b-256 3d49796720c7768f3daf42cb0bc76a4d7ad7a570870787fe8fde855bcebbb1ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nonebot_plugin_session-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f23dca9f9d6ffcb8d556bf982843904bec6302e90fb6a19f2b333f349581d1f5
MD5 d60ba08c6c4904a09b31288562349aa6
BLAKE2b-256 ee3755b649b35d680a22bf0b8cf4fdd5ad78946a016f69ecdeba0cbbc799d27c

See more details on using hashes here.

Supported by

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