Skip to main content
nonebot

nonebot-plugin-uniref

NoneBot2 可持久化的跨平台实体引用插件 ✨

license Python NoneBot pypi

本插件提供可比较、可序列化的 UserRefSceneRef,用于在 NoneBot 插件中持久化用户和场景身份。

安装

  • 使用 nb-cli
nb plugin install nonebot-plugin-uniref
  • 使用 pip
pip install nonebot-plugin-uniref

使用

从事件上下文获取和构造 Ref

from nonebot_plugin_alconna import At, UniMsg
from nonebot_plugin_uniref import RefContext


@matcher.handle()
async def handle(message: UniMsg, refs: RefContext):
    user = refs.user_ref
    scene = refs.scene_ref
    user_ids = [at.target for at in message[At] if at.flag == "user"]
    users = [refs.build_user_ref(user_id) for user_id in user_ids]
    data_scene = refs.parent_scene_ref or scene

编码与恢复 Ref

from nonebot_plugin_uniref import UserRef, decode_ref, encode_ref

ref = UserRef(namespace="QQClient", id="123")
value = encode_ref(ref)

assert value == "user:QQClient:123"
assert decode_ref(value) == ref

构造 Alconna Target

from nonebot_plugin_uniref import decode_ref, ref_to_target

ref = decode_ref("scene:QQClient:group:456")
target = ref_to_target(ref, bot=bot)

模型定义

UserRef

属性 类型 含义
namespace str 用户 ID 所属的身份命名空间
id str 用户 ID

SceneRef

属性 类型 含义
namespace str 场景 ID 所属的身份命名空间
type SceneKind UniRef 定义的场景种类
id str 场景 ID

SceneKind 包含 privategroupguildchannel_textchannel_categorychannel_voice

支持的 Adapter

{...} 表示决定 ID 有效范围的平台值;id= 后是被引用实体自身的 Ref.id。namespace 表达平台空间、 签发方、ID family,以及无法由其他字段表达的必要局部作用域。

已验证 Adapter / 场景 UserRef:namespace;ID SceneRef:namespace;type;ID
OneBot V11、Milky QQClient;id=QQ 号 QQClientprivate:QQ 号;group:群号
Telegram Telegram;id=User ID privategroupTelegram;id=Chat ID;channel_textTelegram:{Chat ID};id=Thread ID
Discord Discord;id=User Snowflake Discordprivateguild、Channel;id=Snowflake
QQ C2C QQAPI:{QQ AppID}:c2c;id=user_openid QQAPI:{QQ AppID}private;id=user_openid
QQ 群聊 QQAPI:{QQ AppID}:group:{group_openid};id=member_openid QQAPI:{QQ AppID}group;id=group_openid
QQ 公开文字子频道 QQAPI:{QQ AppID}:guild:{guild_id};id=频道用户 ID QQAPI:{QQ AppID}channel_text;id=channel_id
飞书私聊 Feishu:{Feishu AppID};id=open_id 同 namespace;private;id=open_id
飞书群聊 Feishu:{Feishu AppID};id=open_id Feishugroup;id=chat_id

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_uniref-0.4.1.tar.gz (14.9 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_uniref-0.4.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_uniref-0.4.1.tar.gz.

File metadata

  • Download URL: nonebot_plugin_uniref-0.4.1.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for nonebot_plugin_uniref-0.4.1.tar.gz
Algorithm Hash digest
SHA256 07330455ceb6bdc7b3df5db642db464eaa2bcbc8084602b0370d522fcdc0cdb4
MD5 882c518719c523baa4116ae67cff4630
BLAKE2b-256 cd91e210476bd881a9fd221c35f293e63c3aa633cccae176c07fc25112399305

See more details on using hashes here.

File details

Details for the file nonebot_plugin_uniref-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: nonebot_plugin_uniref-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for nonebot_plugin_uniref-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d23af7e838de1628a494e1774643b96929df188742581c5bf6663bf91ff4262
MD5 c7847305e8c086382957d2d820254dfe
BLAKE2b-256 c9727f3b712bba0fb996ddaa799ec07f93d283989dfe4db1cafd7ffb2f48b489

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page