From df9aa54ae77ea44bbfbb3cd077fab632a0a8ac9f Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Thu, 8 Dec 2016 11:13:34 +0000 Subject: [PATCH] Support importing Swarm files --- package.json | 1 + src/app.js | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 97abcd68d5..5b2ba8c945 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "nightwatch": "^0.9.3", "solc": "https://github.com/ethereum/solc-js", "standard": "^8.5.0", + "swarmgw": "^0.1.0", "tape": "^4.5.1", "web3": "^0.18.0", "webworkify": "^1.2.1", diff --git a/src/app.js b/src/app.js index 72f2f9e4a6..01c29cd0ff 100644 --- a/src/app.js +++ b/src/app.js @@ -3,6 +3,7 @@ var $ = require('jquery') var base64 = require('js-base64').Base64 +var swarmgw = require('swarmgw') var QueryParams = require('./app/query-params') var queryParams = new QueryParams() @@ -516,7 +517,7 @@ var run = function () { } function handleImportCall (url, cb) { - var githubMatch + var match if (files.exists(url)) { cb(null, files.get(url)) } else if ((githubMatch = /^(https?:\/\/)?(www.)?github.com\/([^/]*\/[^/]*)\/(.*)/.exec(url))) { @@ -526,6 +527,18 @@ var run = function () { return } + // FIXME: at some point we should invalidate the cache + files.addReadOnly(url, content) + cb(null, content) + }) + } else if ((match = /^bzzr:\/\/?([0-9a-fA-F]{64}$)/.exec(url))) { + $('#output').append($('
').append($('
').text('Loading ' + url + ' ...')))
+      swarmgw.get(match[1], function (err, content) {
+        if (err) {
+          cb('Unable to import "' + url + '": ' + err)
+          return
+        }
+
         // FIXME: at some point we should invalidate the cache
         files.addReadOnly(url, content)
         cb(null, content)