Serve feeds under root directory

This commit is contained in:
cel
2017-04-16 10:46:48 -07:00
parent dd5c82b06c
commit 187cf5d8c0
+6 -7
View File
@@ -18,7 +18,7 @@ var serveEmoji = require('emoji-server')()
var emojiDir = path.join(require.resolve('emoji-named-characters'), '../pngs') var emojiDir = path.join(require.resolve('emoji-named-characters'), '../pngs')
var appHash = hash([fs.readFileSync(__filename)]) var appHash = hash([fs.readFileSync(__filename)])
var urlIdRegex = /^(?:\/(([%&]|%25)(?:[A-Za-z0-9\/+]|%2[Ff]|%2[Bb]){43}(?:=|%3[Dd])\.sha256)(?:\.([^?]*))?|(\/.*?))(?:\?(.*))?$/ var urlIdRegex = /^(?:\/(([%&@]|%25|%26|%40)(?:[A-Za-z0-9\/+]|%2[Ff]|%2[Bb]){43}(?:=|%3[Dd])\.(?:sha256|ed25519))(?:\.([^?]*))?|(\/.*?))(?:\?(.*))?$/
function MdRenderer(opts) { function MdRenderer(opts) {
marked.Renderer.call(this, {}) marked.Renderer.call(this, {})
@@ -86,20 +86,19 @@ exports.init = function (sbot, config) {
var m = urlIdRegex.exec(req.url) var m = urlIdRegex.exec(req.url)
if (req.url.startsWith('/user/')) return serveFeed(req, res, m[4]) if (req.url.startsWith('/user-feed/')) return serveUserFeed(req, res, m[4])
else 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])
switch (m[2]) { switch (m[2]) {
case '%25': m[2] = '%'; m[1] = decodeURIComponent(m[1]) case '%25': m[2] = '%'; m[1] = decodeURIComponent(m[1])
case '%': return serveId(req, res, m[1], m[3], m[5]) case '%': return serveId(req, res, m[1], m[3], m[5])
case '@': return serveFeed(req, res, m[1], m[3], m[5])
case '&': return serveBlob(req, res, sbot, m[1]) case '&': return serveBlob(req, res, sbot, m[1])
default: return servePath(req, res, m[4]) default: return servePath(req, res, m[4])
} }
} }
function serveFeed(req, res, url) { function serveFeed(req, res, feedId) {
var feedId = url.substring(url.lastIndexOf('user/')+5, 100)
console.log("serving feed: " + feedId) console.log("serving feed: " + feedId)
var opts = defaultOpts var opts = defaultOpts
@@ -529,7 +528,7 @@ function renderMsg(opts, msg) {
+ ' src="' + opts.img_base + escape(msg.author.image) + '"' + ' src="' + opts.img_base + escape(msg.author.image) + '"'
+ ' height="32" width="32">' + ' height="32" width="32">'
+ '<a class="ssb-avatar-name"' + '<a class="ssb-avatar-name"'
+ ' href="/user/' + escape(msg.value.author) + '"' + ' href="/' + escape(msg.value.author) + '"'
+ '>' + msg.author.name + '</a>' + '>' + msg.author.name + '</a>'
+ msgTimestamp(msg, name) + msgTimestamp(msg, name)
+ render(opts, c) + render(opts, c)
@@ -560,7 +559,7 @@ function render(opts, c)
else if (c.type == 'vote') else if (c.type == 'vote')
return ' voted <a href="/' + c.vote.link + '">this</a>' return ' voted <a href="/' + c.vote.link + '">this</a>'
else if (c.type == 'contact' && c.following) else if (c.type == 'contact' && c.following)
return ' followed <a href="/user/' + c.contact + '">' + c.contactAbout.name + "</a>" return ' followed <a href="/' + c.contact + '">' + c.contactAbout.name + "</a>"
else if (typeof c == 'string') else if (typeof c == 'string')
return ' wrote something private ' return ' wrote something private '
else if (c.type == 'about') else if (c.type == 'about')