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。Scene 类型已经由 SceneRef.type 保存,所以 namespace 不再重复 privategroupchannel

已验证 Adapter / 场景 UserRef:namespace;ID SceneRef:namespace;type;ID
OneBot V11、Milky QQClient;id=QQ 号 QQClientprivate:QQ 号;group:群号
Telegram Telegram;id=User ID Telegramprivategroup:id=Chat ID;channel_text:id={Chat 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;id={group_openid}:{member_openid} QQAPI:{QQ AppID}group;id=group_openid
QQ 公开文字子频道 QQAPI:{QQ AppID}:guild;id={guild_id}:{author.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.0.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.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nonebot_plugin_uniref-0.4.0.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.0.tar.gz
Algorithm Hash digest
SHA256 c45e624b2f988032a8a0601cb5f66fc6212ce2015189c899449dd2ddbac49d0c
MD5 82e9a0b4aa6c3c7e4f9fd42f09b59143
BLAKE2b-256 25caed1c7fe0553bddf85d32c19c7d09d51976c089be9430886d169b98c4f35e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nonebot_plugin_uniref-0.4.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae652cba427e4cc4d1fd666216c60d2ea8e3473b455b75ea9ac383aeccddacf4
MD5 f60b3dbea620f1675f84a6ba1e327a22
BLAKE2b-256 f81fd62501e580a5dd194844d265a8d46e98bdea66c42ef6c3be9b22c18d5e77

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.1

2 files

This release

0.4.0 This release

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