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/ tools.mycooltool@toolforge.org"
);
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