diff options
Diffstat (limited to 'app/static/polltask.js')
-rw-r--r-- | app/static/polltask.js | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/app/static/polltask.js b/app/static/polltask.js deleted file mode 100644 index f6b528d..0000000 --- a/app/static/polltask.js +++ /dev/null @@ -1,61 +0,0 @@ -// @author rubenwardy -// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later - -function getJSON(url, method) { - return new Promise(function(resolve, reject) { - fetch(new Request(url, { - method: method || "get", - credentials: "same-origin", - headers: { - "Accept": "application/json", - }, - })).then(function(response) { - response.text().then(function(txt) { - resolve(JSON.parse(txt)) - }).catch(reject) - }).catch(reject) - }) -} - -function pollTask(poll_url, disableTimeout) { - return new Promise(function(resolve, reject) { - var tries = 0; - function retry() { - tries++; - if (!disableTimeout && tries > 10) { - reject("timeout") - } else { - const interval = Math.min(tries*100, 1000) - console.log("Polling task in " + interval + "ms") - setTimeout(step, interval) - } - } - function step() { - getJSON(poll_url).then(function(res) { - if (res.status == "SUCCESS") { - console.log("Got result") - resolve(res.result) - } else if (res.status == "FAILURE" || res.status == "REVOKED") { - reject(res.error || "Unknown server error") - } else { - retry() - } - }).catch(retry) - } - retry() - }) -} - - -function performTask(url) { - return new Promise(function(resolve, reject) { - getJSON(url, "post").then(function(startResult) { - console.log(startResult) - if (typeof startResult.poll_url == "string") { - pollTask(startResult.poll_url).then(resolve).catch(reject) - } else { - reject("Start task didn't return string!") - } - }).catch(reject) - }) -} |