diff --git a/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss b/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss index 8ca53de0..d7233545 100644 --- a/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss +++ b/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss @@ -10,27 +10,31 @@ processor)) // TODO make this an externMethod -- - // but mediaWikiUrl, headers, and maxLag will still have to be specified, not as args - // unless all vars and props are passed to externmethods by default -(method :Dynamic queryProp [:Array titles :Array props] +// but mediaWikiUrl, headers, and maxLag will still have to be specified, not as args +// unless all vars and props are passed to externmethods by default +(method :Dynamic query [:Map> params] (Json.parse (#extern String python (object hxmlFile "extern-files/python/args.hxml" importHxFile "extern-files/python/import.hx" langProjectFile "extern-files/python/requirements.txt") - [:Array titles _ :Array props _ :String mediaWikiUrl _ :String maxLag (if maxLag (Std.string maxLag) "1") :Map headers _] + [:Map> params _ :String mediaWikiUrl _ :String maxLag (if maxLag (Std.string maxLag) "1") :Map headers _] (let [response (Requests.get mediaWikiUrl - [ - =>"action" "query" - =>"titles" (titles.join "|") - =>"prop" (props.join "|") - =>"maxlag" maxLag - =>"format" "json" - ] + (let [innerParams + [ + =>"action" "query" + =>"maxlag" maxLag + =>"format" "json" + ]] + (doFor =>param paramValues params (dictSet innerParams param (paramValues.join "|"))) + innerParams) (object headers headers))] (assert response.ok) response.text)))) +(defmethod queryImageTitles [:Array pageTitles] + (flatten (for =>_id page (the haxe.DynamicAccess .pages .query (query [=>"titles" pageTitles =>"prop" ["images"]])) (page.images.map ->image image.title)))) + (var headers [=>"User-Agent" "NatArchiveTool/0.0.0 (https://github.com/NQNStudios/kisslang/tree/main/projects/nat-archive-tool; natquaylenelson@gmail.com) Requests/2.26.0"]) \ No newline at end of file diff --git a/projects/nat-archive-tool/src/test/TestMain.kiss b/projects/nat-archive-tool/src/test/TestMain.kiss index 95b450b8..cbc11b8d 100644 --- a/projects/nat-archive-tool/src/test/TestMain.kiss +++ b/projects/nat-archive-tool/src/test/TestMain.kiss @@ -31,4 +31,4 @@ (assert (= name "Adventure")))) (let [wikipedia (new MediaWikiSystem "https://en.wikipedia.org/w/api.php" null null 1)] - ~(wikipedia.queryProp ["Phoenix Wright"] ["images"])) \ No newline at end of file + ~(wikipedia.queryImageTitles ["Phoenix Wright"])) \ No newline at end of file