An open API service indexing awesome lists of open source software.

https://github.com/nonebot/adapter-milky

NoneBot2 Milky 协议适配器 / Milky Protocol adapter for nonebot2
https://github.com/nonebot/adapter-milky

Last synced: 27 days ago
JSON representation

NoneBot2 Milky 协议适配器 / Milky Protocol adapter for nonebot2

Awesome Lists containing this project

README

          


nonebot

# NoneBot-Adapter-Milky

_✨ NoneBot2 Milky 协议适配 / Milky Protocol Adapter for NoneBot2 ✨_

## 协议介绍

[Milky 协议](https://milky.ntqqrev.org/)

### 协议端

- [Lagrange.Milky (WIP)](https://github.com/LagrangeDev/LagrangeV2/tree/main/Lagrange.Milky)
- [Yogurt](https://github.com/LagrangeDev/acidify/tree/main/yogurt)
- [LuckyLilliaBot](https://github.com/LLOneBot/LuckyLilliaBot)

## 配置

修改 NoneBot 配置文件 `.env` 或者 `.env.*`。

### Driver

参考 [driver](https://nonebot.dev/docs/appendices/config#driver) 配置项,添加 `HTTPClient` 和 `WebSocketClient` 支持。

如:

```dotenv
DRIVER=~httpx+~websockets
```

```dotenv
DRIVER=~aiohttp
```

如果你使用的是 Webhook 模式,则可以移除 `WebSocketClient` 支持,并添加 `ASGI` 支持。

如:

```dotenv
DRIVER=~httpx+~fastapi
```

```dotenv
DRIVER=~aiohttp+~fastapi
```

### MILKY_CLIENTS

配置连接配置,如:

```dotenv
MILKY_CLIENTS='
[
{
"host": "localhost",
"port": "8080",
"access_token": "xxx",
"secure": false
}
]
'
```

`host` 与 `port` 为 Milky 协议端设置的监听地址与端口,

`access_token` 为可选项,具体情况以 Milky 协议端为准。

`secure` 为可选项,表示是否使用安全连接(即 wss:// 或 https://),默认为 `false`。

### MILKY_WEBHOOK

如果你使用的是 Webhook 模式,则需要配置 `MILKY_WEBHOOK`。

```dotenv
MILKY_WEBHOOK='
{
"host": "localhost",
"port": "8081",
"access_token": "xxx",
"secure": false
}
'
```

`host` 与 `port` 为 Milky 协议端设置的监听地址与端口,

`access_token` 为可选项,具体情况以 Milky 协议端为准。

`secure` 为可选项,表示是否使用安全连接(即 wss:// 或 https://),默认为 `false`。

## 示例

```python
from nonebot import on_command
from nonebot.adapters.milky import Bot
from nonebot.adapters.milky.event import MessageEvent
from nonebot.adapters.milky.message import MessageSegment

matcher = on_command("test")

@matcher.handle()
async def handle_receive(bot: Bot, event: MessageEvent):
if event.is_private:
await bot.send(event, MessageSegment.text("Hello, world!"))
```