4 个稳定版本
1.0.5 | 2024 年 5 月 4 日 |
---|---|
1.0.4 | 2024 年 4 月 16 日 |
1.0.2 | 2024 年 4 月 14 日 |
1.0.1 | 2024 年 4 月 6 日 |
#1 in #bots
1.5MB
6K SLoC
VTG - 双平台机器人库
VTG 是一个功能齐全的库,用于创建 VK 和 Telegram 的机器人。提供了统一的上下文和方法,便于舒适地处理双平台机器人。
功能
- 支持回调和长轮询更新
- 90% VK 和 TG API 覆盖率(消息)
- 两个平台的统一上下文
- 两个平台的统一上下文方法
- 两个平台的统一附件和文件上传
- 两个平台的统一键盘
- 易于使用
- 易于理解
- 易于贡献
用法
使用长轮询客户端的示例
use std::env;
use vtg::{
client::start_longpoll_client,
structs::{config::Config, context::UnifyedContext, middleware::MiddlewareChain},
};
async fn catch_new_message(ctx: UnifyedContext) -> UnifyedContext {
ctx
}
#[tokio::main]
async fn main() {
let config = Config {
vk_access_token: env::var("VK_ACCESS_TOKEN").unwrap(),
vk_group_id: env::var("VK_GROUP_ID").unwrap().parse().unwrap(),
tg_access_token: env::var("TG_ACCESS_TOKEN").unwrap(), // token starts with "bot", like: bot1234567890:ABCDEFGHIJKL
..Default::default()
};
let mut middleware_chain = MiddlewareChain::new();
middleware_chain.add_middleware(|ctx| Box::pin(catch_new_message(ctx)));
start_longpoll_client(middleware_chain, config).await;
}
使用回调服务器的示例
use std::env;
use vtg::{
server::start_callback_server,
structs::{
config::{CallbackSettings, Config},
context::UnifyedContext,
middleware::MiddlewareChain,
},
};
async fn catch_new_message(ctx: UnifyedContext) -> UnifyedContext {
ctx
}
#[tokio::main]
async fn main() {
let config = Config {
vk_access_token: env::var("VK_ACCESS_TOKEN").unwrap(),
vk_group_id: env::var("VK_GROUP_ID").unwrap().parse().unwrap(),
tg_access_token: env::var("TG_ACCESS_TOKEN").unwrap(), // token starts with "bot", like: bot1234567890:ABCDEFGHIJKL
vk_api_version: "5.199".to_owned(),
callback: Some(CallbackSettings {
port: 1234,
callback_url: "https://valnesfjord.com".to_string(),
secret: "secret".to_string(),
path: "yourcallbacksecretpathwithoutslashinstartandend".to_string(),
}),
};
let mut middleware_chain = MiddlewareChain::new();
middleware_chain.add_middleware(|ctx| Box::pin(catch_new_message(ctx)));
start_callback_server(middleware_chain, config).await;
}
示例
您可以在 示例文件夹 中找到示例机器人
尝试使用 vtg 运作的机器人
您可以使用测试机器人,它在 vtg 的实际版本中运行:tg,vk
文档
您可以在 此处 找到文档
尚未完成
- 添加更多测试
- 添加更多示例
- 添加 VK 和 TG API 文档
- 添加更多功能(如更多 API 覆盖率等)
联系维护者
Telegram: @valnesfjord Discord: valnesfjord VK: https://vk.com/cyournamec
讨论
贡献
欢迎贡献!如果您有任何想法、建议或问题,请随时贡献。您可以复制仓库并创建带有更改的拉取请求,或者在发现任何错误或有改进建议时创建问题。
我们感谢您为使此项目变得更好而提供的帮助!
依赖项
~7–18MB
~242K SLoC