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

相关插件

鸣谢

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.0.tar.gz (9.0 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.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nonebot_plugin_session-0.2.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/6.2.0-1012-azure

File hashes

Hashes for nonebot_plugin_session-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5f92706dfeb6e21dcce04998bc3b8dafc59f5af50d2908aceeed0faf9d88a67c
MD5 4806d6f247a87fc6f986fae15275f640
BLAKE2b-256 88d8f901f94e6393ea5a252259ef645d9077340c7a7eae747e22384533d447dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nonebot_plugin_session-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00859872b7c7d2967e1eaabf161c8a47dc83bc85791629b659922b2f425d4854
MD5 d940afa0bcf9eb826999bc65403723a3
BLAKE2b-256 c16065de6b36a32a878f27e779d662a611fb5be2cd5786d867d66021f53ccf7b

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