From 6ec7d86a0a2ee9b873801042952c1f8d998da0e3 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sun, 1 Aug 2021 21:38:15 -0600 Subject: [PATCH] Requests return dynamic --- extern-files/python/import.hx | 1 - src/nat/systems/MediaWikiSystem.hx | 2 +- src/nat/systems/MediaWikiSystem.kiss | 36 +++++++++++++++------------- src/test/TestMain.kiss | 4 +--- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/extern-files/python/import.hx b/extern-files/python/import.hx index 03e1b9f..ee370a3 100644 --- a/extern-files/python/import.hx +++ b/extern-files/python/import.hx @@ -1,2 +1 @@ -import requests_externs.Response; import requests_externs.Requests; diff --git a/src/nat/systems/MediaWikiSystem.hx b/src/nat/systems/MediaWikiSystem.hx index 118f222..f66e37c 100644 --- a/src/nat/systems/MediaWikiSystem.hx +++ b/src/nat/systems/MediaWikiSystem.hx @@ -2,8 +2,8 @@ package nat.systems; import kiss.Prelude; import kiss.List; -import requests_externs.Response; import nat.System; +import haxe.Json; @:build(kiss.Kiss.build()) class MediaWikiSystem extends System {} diff --git a/src/nat/systems/MediaWikiSystem.kiss b/src/nat/systems/MediaWikiSystem.kiss index df4e1c1..8ca53de 100644 --- a/src/nat/systems/MediaWikiSystem.kiss +++ b/src/nat/systems/MediaWikiSystem.kiss @@ -12,21 +12,25 @@ // 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 :Response queryProp [:Array titles :Array props] - (#extern Response 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 _] - (Requests.get mediaWikiUrl - [ - =>"action" "query" - =>"titles" (titles.join "|") - =>"prop" (props.join "|") - =>"maxlag" maxLag - =>"format" "json" - ] - (object headers headers)))) +(method :Dynamic queryProp [:Array titles :Array props] + (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 _] + (let [response + (Requests.get mediaWikiUrl + [ + =>"action" "query" + =>"titles" (titles.join "|") + =>"prop" (props.join "|") + =>"maxlag" maxLag + =>"format" "json" + ] + (object headers headers))] + (assert response.ok) + response.text)))) (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/src/test/TestMain.kiss b/src/test/TestMain.kiss index 4c1be0b..95b450b 100644 --- a/src/test/TestMain.kiss +++ b/src/test/TestMain.kiss @@ -31,6 +31,4 @@ (assert (= name "Adventure")))) (let [wikipedia (new MediaWikiSystem "https://en.wikipedia.org/w/api.php" null null 1)] - //~(wikipedia.queryProp ["Phoenix Wright"] ["images"]) - 0 - ) \ No newline at end of file + ~(wikipedia.queryProp ["Phoenix Wright"] ["images"])) \ No newline at end of file