#telegram-bot #command #events #macro #fork #framework #telexide

过程宏 telexide_fork_proc_macros

(fork) 用于订阅telexide事件的宏

1个不稳定版本

0.1.1 2021年12月3日

#112 in #telegram-bot

每月下载量 21
2 个crate中使用 (通过 telexide-fork)

MIT 协议

12KB
221

Crate Docs Build Status Rust Version

telexide

Telexide是一个易于使用的库,用于创建Telegram机器人,基于tokio和hyper构建。

查看示例,了解如何创建和构建机器人。

使用ClientBuilder轻松创建一个符合您偏好的Client对象,并使用create_framework宏注册命令和/或注册自己的更新处理程序,然后运行Client::start启动您的机器人。所有这些都被设计为高度可定制。有关客户端的更多信息,请参阅客户端的模块级文档

使用APIClient和api数据模型轻松进行API调用,或通过实现API特质创建和使用自己的api客户端。有关api客户端的更多信息,请参阅api的模块级文档

使用 Framework 对象提供默认的命令框架,方便处理用户发送的 Telegram 机器人命令。有关框架的更多信息,请参阅 框架的模块级文档

示例机器人

一个基本的 ping-pong 机器人可以编写如下:

use std::env;
use telexide_fork::{api::types::SendMessage, prelude::*};

#[command(description = "just a ping-pong command")]
async fn ping(context: Context, message: Message) -> CommandResult {
    context
        .api
        .send_message(SendMessage::new(message.chat.get_id(), "pong"))
        .await?;
    Ok(())
}

#[tokio::main]
async fn main() -> telexide_fork::Result<()> {
    let token = env::var("BOT_TOKEN").expect("no token environment variable set");

    ClientBuilder::with_framework(
        create_framework!("ping-pong", ping),
        token
    ).start().await
}

更多示例,请参阅 examples 目录。

功能

  • 易于使用和自定义的客户端
  • 基于长轮询的更新处理
    • 设置自己的超时时间
    • 设置一次获取更新的限制
  • 基于宏的命令框架,易于使用
  • 易于使用且高度可自定义的 API 客户端
    • 使用自己的 hyper 客户端
    • 使用自己的 API 结构,以便控制获取和发布方法
    • 包含所有 Telegram API 端点
  • 基于 webhook 的更新处理

计划中

  • 使用功能标志从库中选择所需的内容
  • 使用命令(或类似)框架订阅非消息事件
    • 在收到内联查询或对其的回答时运行命令
    • 在收到符合要求的投票时运行命令
  • 使用 wait_for 风格的 Context 方法等待符合您标准的更新
  • 更多用于创建 API 数据的构建器方法
  • 在模型上使用方法,以便更容易调用 API 端点(如 ChatMember::kick

安装

将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
telexide = "0.1.6"

支持的 Rust 版本

最低支持的版本是 1.46。当前 Telexide 版本不能保证在低于最低支持版本的 Rust 版本上构建。


lib.rs:

用于订阅 telexide 事件的宏

依赖关系

~1.5MB
~35K SLoC