From c44122ec8c8ab77498cede4da8f5fc7b41d9f8bc Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 12 Aug 2021 23:13:49 -0600 Subject: [PATCH] request timeout, curl in NAT --- .../src/nat/systems/MediaWikiSystem.kiss | 11 +++++++++-- .../src/nat/systems/WikipediaImageSystem.kiss | 16 +++++++++------- .../src/requests_externs/Requests.hx | 9 ++++++--- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss b/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss index 041d03fb..d66c4c1d 100644 --- a/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss +++ b/projects/nat-archive-tool/src/nat/systems/MediaWikiSystem.kiss @@ -20,6 +20,8 @@ importHxFile "extern-files/python/import.hx" langProjectFile "extern-files/python/requirements.txt") [:Map> params _ :String mediaWikiUrl _ :String maxLag (if maxLag (Std.string maxLag) "1") :Map headers _] + + (print "extern query call $params") (let [response (Requests.get mediaWikiUrl (let [innerParams @@ -30,8 +32,11 @@ ]] (doFor =>param paramValues params (dictSet innerParams param (paramValues.join "|"))) innerParams) - (object headers headers))] + (object + headers headers + timeout 2))] (assert response.ok) + (print "call finished: ${response.text}") response.text)))) (method :Array queryImageTitles [:Array pageTitles] @@ -43,7 +48,9 @@ (method :Array queryImageUrls [:Array imageTitles] (flatten - (for =>_id image (the haxe.DynamicAccess .pages .query (query [=>"titles" imageTitles =>"prop" ["imageinfo"] =>"iiprop" ["url"]])) + (for =>_id image + (the haxe.DynamicAccess + .pages .query (query [=>"titles" imageTitles =>"prop" ["imageinfo"] =>"iiprop" ["url"]])) (if image.imageinfo (image.imageinfo.map ->image image.url) [])))) diff --git a/projects/nat-archive-tool/src/nat/systems/WikipediaImageSystem.kiss b/projects/nat-archive-tool/src/nat/systems/WikipediaImageSystem.kiss index 4eab282e..ff079b86 100644 --- a/projects/nat-archive-tool/src/nat/systems/WikipediaImageSystem.kiss +++ b/projects/nat-archive-tool/src/nat/systems/WikipediaImageSystem.kiss @@ -13,13 +13,15 @@ (readComponent archive e Name) :Array wikipediaImageUrls (queryImageUrls (queryImageTitles [title]))] - (doFor url wikipediaImageUrls - (assertProcess "wget" ["--directory-prefix=${archive.archiveDir}" url])) (addFiles archive e (for url wikipediaImageUrls - (joinPath archive.archiveDir - ~(.replace - (.urlDecode (url.withoutDirectory)) - // Some symbols shouldn't be decoded because they're invalid in file systems! - "\"" "%22")))) + (let [filePath + (joinPath archive.archiveDir + ~(.replace + (.urlDecode (url.withoutDirectory)) + // Some symbols shouldn't be decoded because they're invalid in file systems! + "\"" "%22"))] + (print url "downloading") + (assertProcess "curl" ["--output" filePath url]) + filePath))) (addTags archive e ["wikipediaProcessed"]))) diff --git a/projects/requests-externs/src/requests_externs/Requests.hx b/projects/requests-externs/src/requests_externs/Requests.hx index 6ffe4645..f0b8c3b7 100644 --- a/projects/requests-externs/src/requests_externs/Requests.hx +++ b/projects/requests-externs/src/requests_externs/Requests.hx @@ -5,11 +5,13 @@ import python.Dict; import python.KwArgs; typedef NativeRequestKwArgs = { - ?headers:Dict + ?headers:Dict, + ?timeout:Float } typedef RequestKwArgs = { - ?headers:Map + ?headers:Map, + ?timeout:Float } @:pythonImport("requests") @@ -36,7 +38,8 @@ class Requests { if (kwArgs == null) return null; return { - headers: mapToDict(kwArgs.headers) + headers: mapToDict(kwArgs.headers), + timeout: kwArgs.timeout }; } }