User:Tony Sidaway/scripts/categorymembers
Appearance
Iron Chicken script:
(let* ( [category-string (with-input-from-string (second (argv)) read-string)] [category (string-substitute "^(\\[\\[)*(:)([Cc]ategory:\\s)*([^\\[]*)(\\]\\])*$" "\\4" category-string)] [output-page (if (> (length (argv)) 2) (wiki-unlink (with-input-from-string (third (argv)) read-string)) (string-append "User:" client-username "/categorymembers/" category))] [ftitle (fgetattrvalue "//@title")] [fcategory (make-get-next-page (lambda opt (and-let* ( [res (api (append `((action . "query") (list . "categorymembers") (cmlimit . 500) (cmcategory . ,category)) (apply append opt)))]) (cadr res))) "//cm")] [result (let loop ([lst '()] [s (fcategory)]) (if s (loop (append lst (list (ftitle s))) (fcategory)) lst))]) (write-wiki-page output-page (string-append (wiki-heading 2 (string-append "Members of [[:Category: " category "]]")) (big-apply string-append (wiki-list (map wiki-link result)))) (string-append "Members of [[:Category: " category "]] " "compiled for " client-username " by " bot-username " using " (irnc-user-agent))))