20 个版本 (9 个稳定版)
5.7.0 | 2024年1月6日 |
---|---|
5.6.0 | 2023年10月29日 |
5.5.1 | 2023年7月31日 |
5.5.0 | 2023年1月20日 |
0.2.0 | 2020年9月15日 |
631 在 数据库接口 中排名
每月下载量 84
38KB
583 行
toolforge
toolforge
crate 为 Toolforge 上的各种任务提供辅助函数。
请参阅 wikitech 以获取完整文档。
许可证
toolforge 是 (C) 2013, 2017, 2020-2021 Kunal Mehta,根据 GPL v3 或任何后续版本发布,有关详细信息请参阅 COPYING。
lib.rs
:
toolforge
crate 为 Toolforge 上的各种任务提供辅助函数。
构建 User-Agent
user_agent!
宏生成符合 Wikimedia 的 User-Agent 策略 的工具特定的 User-Agent
标头。唯一必需的参数是工具的名称。可选的第二个和第三个参数可以是 URL 和电子邮件的覆盖。
示例
const USER_AGENT: &str = toolforge::user_agent!("mycooltool");
assert_eq!(
USER_AGENT,
"https://mycooltool.toolforge.org/ [email protected]"
);
WikiReplica 连接辅助工具
connection_info!
宏构建连接到 Wiki Replicas 的 URL 字符串,以供与 mysql_async
crate 一起使用。它也应该与 mysql
crate 一起使用。具体来说,它遵循 Toolforge 连接处理策略。
第一个参数是数据库名称,可以是带有或不带有 _p
后缀的名称。第二个(可选)参数是要连接到哪个集群,可以是 WEB
(默认)或 ANALYTICS
。
示例
use mysql_async::Pool;
let pool = Pool::new(
toolforge::connection_info!("enwiki", WEB)
.expect("unable to load db config")
.to_string()
.as_str(),
);
let mut conn = pool.get_conn().await?;
本地开发
将您的工具的 replica.my.cnf
复制到您的本地计算机,将其保存到 ~/replica.my.cnf
并添加一个 local='true'
标志。例如
[client]
user='u####'
password='...'
local='true'
然后打开一个SSH隧道,端口号为3306,连接到你想要访问的特定维基副本数据库。以下描述的toolforge-tunnel
助手可以简化此过程。
WikiPool
功能
WikiPool
是围绕mysql_async::Pool
的一个包装器,给定一个数据库名称,将连接到相应的后端服务器。它足够智能,知道哪些数据库位于同一服务器上,因此可以优化重用连接以获得更好的性能。这是wikipool
功能背后的原理。
toolforge-tunnel
助手
toolforge-tunnel
工具简化了打开维基副本SSH隧道的过程。示例用法:toolforge-tunnel enwiki
。
可以通过cargo安装:cargo install toolforge --features=cli
。预构建的二进制文件可以从GitLab下载。
贡献
toolforge
是mwbot-rs
项目的一部分。我们一直在寻找新的贡献者,如果您对此感兴趣,请联系我们!
依赖关系
~0–12MB
~120K SLoC