mwbot/generators/
unconnected_pages.rs

1// SPDX-FileCopyrightText: 2023 Misato Kano <me@mirror-kt.dev>
2// SPDX-License-Identifier: GPL-3.0-or-later
3//! Generator for pages not linked to a Wikibase item
4//!
5//! These generators require the [Wikibase](https://www.mediawiki.org/wiki/Wikibase)
6//! extension to be installed on your wiki.
7//!
8//! See the [`UnconnectedPages`] type documentation for specifics.
9use super::Generator;
10
11/// Get all unconnected pages to Wikibase.
12#[derive(Generator)]
13#[params(
14    generator = "querypage",
15    gqppage = "UnconnectedPages",
16    gqplimit = "max"
17)]
18pub struct UnconnectedPages {
19    #[param("gqpoffset")]
20    offset: Option<u64>,
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26    use crate::tests::testwp;
27
28    #[tokio::test]
29    async fn test_unconnected_pages() {
30        let bot = testwp().await;
31        let gen = UnconnectedPages::new();
32        dbg!(gen.params());
33
34        let mut pages = gen.generate(&bot);
35        let mut count = 0;
36
37        while let Some(page) = pages.recv().await {
38            let page = page.unwrap();
39            dbg!(page.title());
40
41            if count >= 5 {
42                break;
43            }
44            count += 1;
45        }
46
47        assert_eq!(count, 5);
48    }
49}