3 个版本

0.1.2 2023 年 8 月 18 日
0.1.1 2022 年 10 月 2 日
0.1.0 2020 年 4 月 28 日

#1151过程宏


用于 telexide

MIT 许可证

18KB
417

telexide

Crate Docs Build Status Rust Version

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

查看如何创建和结构化机器人的示例:示例

使用 ClientBuilder 创建一个符合您偏好的 Client 对象,并使用 create_framework 宏注册命令,或者注册您自己的更新处理器,然后在运行 Client::start 以启动您的机器人之前完成所有这些操作。所有这些都旨在高度可定制。有关客户端的更多信息,请参阅 客户端的模块级文档

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

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

示例机器人

一个基本的乒乓球机器人可以这样编写

use std::env;
use telexide::{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().into(), "pong"))
        .await?;
    Ok(())
}

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

    ClientBuilder::new()
        .set_token(&token)
        .set_framework(create_framework!(bot_name, ping))
        .build()
        .start()
        .await
}

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

特点

  • 支持所有Telegram机器人API,包括6.9版本
  • 易于使用和可定制的客户端
  • 基于长轮询的更新处理
    • 设置自己的超时时间
    • 设置一次获取更新的限制
  • 易于使用,基于宏的命令框架
  • 易于使用且高度可定制的API客户端
    • 使用自己的Hyper客户端
    • 使用自己的API结构,以便您控制GET和POST方法
    • 包含所有Telegram API端点
  • 基于Webhook的更新处理
  • 创建所有API调用有效负载的构建器方法

计划中

  • 使用功能标志从库中选择您想要的功能
  • 使用命令(或类似)框架订阅非消息事件
    • 收到内联查询或对其的回答时运行命令
    • 收到符合您要求的投票时运行命令
  • 使用wait_for风格的Context方法等待符合您标准的通知
  • 在模型上提供方法,以便更轻松地调用API端点(例如ChatMember::kick

安装

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

[dependencies]
telexide = "0.1.17"

功能标志

Telexide使用一组功能标志,允许在rustls和native-tls之间切换以支持TLS。将来可能会添加标志来启用或禁用crate的可选部分。

  • rustls:使API客户端使用hyper-rustls创建TLS连接器。默认启用。
  • native-tls:使API客户端使用hyper-tls创建TLS连接器。如果启用,将覆盖rustls功能。

支持的Rust版本

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


lib.rs:

telexide中订阅事件的宏

依赖项

~300–760KB
~18K SLoC