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

Uploaded Python 3

File details

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

File metadata

  • Download URL: graiax_anchor-0.1.0.tar.gz
  • Upload date:
  • Size: 138.6 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.0.tar.gz
Algorithm Hash digest
SHA256 7de50545647553b5bfac3d30a2ae65362b45b8255d63b3c5c22120bf7d19e09d
MD5 2b7d161b029a8a51b745578a09bc204b
BLAKE2b-256 2433951ac88abcf80815893373b9b719eb8699b3e9335db95d8e61b5c5127402

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graiax_anchor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 65.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0133523f086169fd37f8575f4ee3acef089aeff323eb08fabe6becd54ee5e6e
MD5 0bbb04443f06076b07acb973f51e59ef
BLAKE2b-256 25b8f75be1daa00cbe1c0865df98d04aa145a1010c9e90ab65e886dda75da448

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