Skip to main content

An elegant OneBot 11 protocol framework for Python, inspired by Graia Ariadne.

Project description

Anchor

An elegant Python OneBot 11 framework, inspired by Graia Ariadne.

PyPI Python Version License Code style: ruff

Anchor 是基于 Graia Ariadne 设计重构的 OneBot 11 协议框架,保留了 Ariadne 优雅的 MessageChain 消息链设计和 graia 生态的核心组件(graia-broadcastlaunartcreart)。

特性

  • 扩展支持 — 表情回应、Markdown、群精华等
  • 保留 MessageChain 设计 — 丰富的消息段类型与链式查询 API
  • graia 生态兼容 — 支持 graia-broadcastgraia-saya

安装

pip install graiax-anchor

推荐使用 uv

uv add graiax-anchor

快速开始

from graia.broadcast import Broadcast
from graiax.anchor import Anchor, OneBotConfig
from graiax.anchor.event.message import GroupMessageEvent

broadcast = Broadcast()
app = Anchor(
    broadcast=broadcast,
    config=OneBotConfig(
        ws_url="ws://localhost:3001",
        access_token="your_token",
    ),
)


@broadcast.receiver(GroupMessageEvent)
async def on_group_message(event: GroupMessageEvent):
    chain = event.message_chain
    if chain.startswith("/hello"):
        await app.send_group_msg(event.group_id, "Hello, World!")


app.launch_blocking()

更多示例请参考 demo.md

项目结构

graiax.anchor
├── app.py              # Anchor 主应用类, 80+ API 方法
├── log.py              # 日志系统 (LogConfig)
├── connection/         # HTTP / WebSocket 客户端与配置
├── event/              # OneBot 11 事件模型 (消息/通知/请求/元事件)
├── message/
│   ├── segment.py      # 消息段类型 (Text, Image, At, Reply, Forward, ...)
│   ├── chain.py        # MessageChain 消息链
│   └── parser/         # 消息解析器 (DetectPrefix, MatchRegex, ...)
├── model/              # 数据模型 (Friend, Group, Member, ...)
├── dispatcher.py       # graia-broadcast Dispatcher
├── service.py          # Launart 服务
└── util/               # 工具 (发送策略, 验证器, Saya 集成)

协议

本项目以 GNU AGPL-3.0 作为开源协议。

致谢

如果认为本项目有帮助, 欢迎点一个 Star.

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

graiax_anchor-0.1.2.tar.gz (139.1 kB view details)

Uploaded Source

Built Distribution

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

graiax_anchor-0.1.2-py3-none-any.whl (65.7 kB view details)

Uploaded Python 3

File details

Details for the file graiax_anchor-0.1.2.tar.gz.

File metadata

  • Download URL: graiax_anchor-0.1.2.tar.gz
  • Upload date:
  • Size: 139.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for graiax_anchor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 fd02377c66a262d114d99d472eea834a6c0d7263ba48ace18fa737da7f07bae6
MD5 0662570b27ace5477deb50f0678b7ebc
BLAKE2b-256 30dd2d5798a4b7f6a4fd8cae0715a4aab5b673b40bbacf36834ce39cd676dd99

See more details on using hashes here.

File details

Details for the file graiax_anchor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: graiax_anchor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for graiax_anchor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f6fa87a9160fd38bf4862b7abaade635e28e34b53cdee7123bd9b6faed6d3152
MD5 c9d037a0dda4df21a68552c1168b5a09
BLAKE2b-256 f2cfa322a4e7ad0bc374e4200a9253aa677a80b689f39e4a3bcb20f1fa6b45dc

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