Skip to main content

Nonebot Adapter for Kritor Protocol

Project description

NoneBot-Adapter-Kritor

✨ NoneBot2 Kritor Protocol适配器 / Kritor Protocol Adapter for NoneBot2 ✨

[!NOTE] Kritor 项目目前处于开发阶段, 所定义的 proto api 可能会有较大变动

若出现异常情况请确定本仓库使用的 kritor api 与所对接的协议端使用的 kritor api 是否相同

协议介绍

Kritor Protocol

协议端

目前提供了 kritor 协议实现的有:

配置

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

Driver

因本适配器基于 gRPC,Nonebot 没有现有的相关驱动器,所以驱动请直接写 none:

DRIVER=~none

KRITOR_CLIENTS

配置机器人帐号,如:

KRITOR_CLIENTS='
[
  {
    "host": "xxx",
    "port": xxx,
    "account": "xxx",
    "ticket": "xxx"
  }
]
'
KRITOR_SKIP_AUTH=false

其中,

  • host: 服务端的地址,默认为 localhost
  • port: 服务端的端口
  • account: bot 登录的账号
  • ticket: bot 登录用的凭证/密码
  • KRITOR_SKIP_AUTH: 若协议端未启用鉴权功能,则启用此配置项。此时 ticket 留空即可。

以对接 Lagrange.Kritor 为例

首先按照 Lagrange.Kritor 的 README 进行配置。进行下一步前你应当已经创建好了 appsettings.json:

// appsettings.json
{
    "Logging": {
        "LogLevel": {
            // Log level, please modify to `Trace` when providing feedback on issues
            "Default": "Information"
        }
    },
    "Core": {
        "Protocol": {
            // Protocol platform, please modify according to the Signer version
            // Type: String ("Windows", "MacOs", "Linux")
            // Default: "Linux"
            "Platform": "Linux",
            "Signer": {
                // Signer server url
                // Type: String (HTTP URL, HTTPS URL)
                "Url": "",
                // Signer server proxy
                // Type: String (HTTP URL)
                "Proxy": ""
            }
        },
        "Server": {
            // Whether to automatically reconnect to the TX server
            // Type: bool
            // Default: false
            "AutoReconnect": true,
            // Whether to get optimum server
            // Type: bool
            // Default: false
            "GetOptimumServer": true
        }
    },
    "Kritor": {
        "Network": {
            // Address of the Kritor service binding
            // Type: String (ip)
            "Address": "0.0.0.0",
            // Port of the Kritor service binding
            // Type: Number ([1-65535])
            "Port": 9000
        },
        "Authentication": {
            // Whether to enable authentication
            // Type: bool
            "Enabled": false,
            // Ticket with maximum privileges
            // Type: String
            "SuperTicket": "",
            // Ticket list
            // Type: String[]
            "Tickets": []
        },
        "Message": {
            // Whether to ignore your own messages
            // Type: bool
            "IgnoreSelf": false
        }
    }
}

对于配置项:

  • hostKritor.Network.Address 一致
  • portKritor.Network.Port 一致
  • Kritor.Authentication.Enabled 为 true, 则 ticket 应存在于 .SuperTicket.Tickets
  • account 为你登录的账号

克隆

因为该仓库包含一个 submodule, 请使用以下命令克隆本仓库:

git clone --recursive https://github.com/nonebot/adapter-kritor.git

示例

from nonebot import on_command
from nonebot.adapters.kritor import Bot
from nonebot.adapters.kritor.message import MessageSegment
from nonebot.adapters.kritor.permission import PRIVATE


matcher = on_command("test", permission=PRIVATE)

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

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

nonebot_adapter_kritor-0.3.1.tar.gz (44.6 kB view hashes)

Uploaded Source

Built Distribution

nonebot_adapter_kritor-0.3.1-py3-none-any.whl (57.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page