本插件提供可比较、可序列化的 UserRef 与 SceneRef,用于在 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 包含 private、group、guild、channel_text、channel_category 和 channel_voice。
支持的 Adapter
{...} 表示决定 ID 相等范围的平台值;id= 后才是实际的 Ref.id。Scene 类型已经由 SceneRef.type
保存,所以 namespace 不再重复 private、group 或 channel。
| 已验证 Adapter / 场景 | UserRef:namespace;ID | SceneRef:namespace;type;ID |
|---|---|---|
| OneBot V11、Milky | QQClient;id=QQ 号 |
QQClient;private:QQ 号;group:群号 |
| Telegram | Telegram;id=User ID |
Telegram;private、group:id=Chat ID;channel_text:id={Chat ID}:{Thread ID} |
| Discord | Discord;id=User Snowflake |
Discord;private、guild、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 |
Feishu;group;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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c45e624b2f988032a8a0601cb5f66fc6212ce2015189c899449dd2ddbac49d0c
|
|
| MD5 |
82e9a0b4aa6c3c7e4f9fd42f09b59143
|
|
| BLAKE2b-256 |
25caed1c7fe0553bddf85d32c19c7d09d51976c089be9430886d169b98c4f35e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae652cba427e4cc4d1fd666216c60d2ea8e3473b455b75ea9ac383aeccddacf4
|
|
| MD5 |
f60b3dbea620f1675f84a6ba1e327a22
|
|
| BLAKE2b-256 |
f81fd62501e580a5dd194844d265a8d46e98bdea66c42ef6c3be9b22c18d5e77
|