feat: serve ssb websites under /web

This commit is contained in:
Stephen Whitmore
2018-04-16 13:59:50 -07:00
parent f41ee2c2c8
commit c71fb2a089
2 changed files with 25 additions and 0 deletions
+24
View File
@@ -9,6 +9,7 @@ var sort = require('ssb-sort')
var toPull = require('stream-to-pull-stream') var toPull = require('stream-to-pull-stream')
var memo = require('asyncmemo') var memo = require('asyncmemo')
var lru = require('lrucache') var lru = require('lrucache')
var webresolve = require('ssb-web-resolver')
var serveEmoji = require('emoji-server')() var serveEmoji = require('emoji-server')()
var { var {
MdRenderer, MdRenderer,
@@ -82,6 +83,7 @@ exports.init = function (sbot, config) {
if (req.url.startsWith('/user-feed/')) return serveUserFeed(req, res, m[4]) if (req.url.startsWith('/user-feed/')) return serveUserFeed(req, res, m[4])
else if (req.url.startsWith('/channel/')) return serveChannel(req, res, m[4]) else if (req.url.startsWith('/channel/')) return serveChannel(req, res, m[4])
else if (req.url.startsWith('/.well-known/acme-challenge')) return serveAcmeChallenge(req, res) else if (req.url.startsWith('/.well-known/acme-challenge')) return serveAcmeChallenge(req, res)
else if (req.url.startsWith('/web/')) return serveWeb(req, res, m[4])
if (m[2] && m[2].length === 3) { if (m[2] && m[2].length === 3) {
m[1] = decodeURIComponent(m[1]) m[1] = decodeURIComponent(m[1])
@@ -144,6 +146,28 @@ exports.init = function (sbot, config) {
}) })
} }
function serveWeb (req, res, url) {
var self = this
var id = decodeURIComponent(url.substr(1))
var components = url.split('/')
if (components[0] === '') components.shift()
if (components[0] === 'web') components.shift()
components[0] = decodeURIComponent(components[0])
webresolve(sbot, components, function (err, data) {
if (err) {
return respond(res, 404, 'ERROR: ' + err)
}
return pull(
pull.once(data),
toPull(res, function (err) {
if (err) console.error('[viewer]', err)
})
)
})
}
function serveUserFeed(req, res, url) { function serveUserFeed(req, res, url) {
var feedId = url.substring(url.lastIndexOf('user-feed/')+10, 100) var feedId = url.substring(url.lastIndexOf('user-feed/')+10, 100)
console.log("serving user feed: " + feedId) console.log("serving user feed: " + feedId)
+1
View File
@@ -19,6 +19,7 @@
"ssb-marked": "^0.7.3", "ssb-marked": "^0.7.3",
"ssb-ref": "^2.9.0", "ssb-ref": "^2.9.0",
"ssb-sort": "^1.0.0", "ssb-sort": "^1.0.0",
"ssb-web-resolver": "^1.0.4",
"stream-to-pull-stream": "^1.7.2" "stream-to-pull-stream": "^1.7.2"
}, },
"devDependencies": { "devDependencies": {